Hello, probably a noob question, but I’ve looked everywhere and tried every solution I could find. And none worked.
I simply want my sprite character to move to the mouse click position along X axis. But after trying every solution, the sprite either teleports to the end position or moves the distance defined in ‘moveSpeed’.
I want him to ‘move’ to the mouse click position in the most human way possible - slowly tumbling across, that is. Any help will be super appreciated, thanks!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MovementController : MonoBehaviour
{
public LayerMask clickMask;
public float moveSpeed;
void Update()
{
Vector3 clickPosition = -Vector3.one;
if (Input.GetMouseButtonUp(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Physics.Raycast(ray, out hit, 100f, clickMask))
{
clickPosition = hit.point;
clickPosition.z = transform.position.z;
clickPosition.y = transform.position.y;
}
if (transform.position.x != clickPosition.x)
{
if (clickPosition.x > transform.position.x)
{
//walk right
//transform.position += Vector3.right * moveSpeed * Time.deltaTime;
}
else if (clickPosition.x < transform.position.x)
{
//walk left
transform.position += Vector3.left * moveSpeed * Time.deltaTime;
}
}
Debug.Log(clickPosition);
}
}
}