(2D) How can I make my player be controlled by the mouse position and still being able to stop if it hits a collider?
public class Movement : MonoBehaviour
{
public float distance = 1f;
public bool useInitialCameraDistance = false;
private float actualDistance;
public Rigidbody2D rb;
public float force = 100f;
void Awake ()
{
rb = gameObject.GetComponent<Rigidbody2D>();
}
// Start is called before the first frame update
void Start()
{
if (useInitialCameraDistance)
{
Vector3 toObjectVector = transform.position = Camera.main.transform.position;
Vector3 linearDistanceVector = Vector3.Project(toObjectVector, Camera.main.transform.position);
actualDistance = (transform.position = Camera.main.transform.position).magnitude;
}
else
{
actualDistance = distance;
}
}
// Update is called once per frame
void Update()
{
Vector3 mousePosition = Input.mousePosition;
mousePosition.z = distance;
transform.position = Camera.main.ScreenToWorldPoint(mousePosition);
Vector3 pos = transform.position;
pos.z = 0;
transform.position = pos;
}
}