Hello! Very new to coding and I have been following a couple tutorials.
I found a guide on how to do TileBased movement
My only problem is figuring out how to get this to interact with colliders, or getting the player to stop moving off the level.
Just need to get pointed in the right direction for this stuff.
Trying to recreate the old school zelda or pokemon movement.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
[SerializeField] private float distanceToMove;
[SerializeField] private float moveSpeed;
private bool moveToPoint = false;
private Vector3 endPosition;
void Start()
{
endPosition = transform.position;
}
void FixedUpdate()
{
if (moveToPoint)
{
transform.position = Vector3.MoveTowards(transform.position, endPosition, moveSpeed * Time.deltaTime);
}
}
void Update()
{
if (Input.GetKeyDown(KeyCode.A)) //Left
{
endPosition = new Vector3(endPosition.x - distanceToMove, endPosition.y, endPosition.z);
moveToPoint = true;
}
if (Input.GetKeyDown(KeyCode.D)) //Right
{
endPosition = new Vector3(endPosition.x + distanceToMove, endPosition.y, endPosition.z);
moveToPoint = true;
}
if (Input.GetKeyDown(KeyCode.W)) //Up
{
endPosition = new Vector3(endPosition.x, endPosition.y + distanceToMove, endPosition.z);
moveToPoint = true;
}
if (Input.GetKeyDown(KeyCode.S)) //Down
{
endPosition = new Vector3(endPosition.x, endPosition.y - distanceToMove, endPosition.z);
moveToPoint = true;
}
}
}