У меня есть спрайт прямоугольного плеера с приложенным Box Collider 2D и Rigidbody2D. У меня также есть скрипт для перемещения указателя и щелчка, прикрепленный к объекту игрока (т. Е. Игрок перемещается в положение щелчка мыши). Однако, как только персонаж игрока попадает в коллайдер, он начинает дрожать, а не просто останавливаться. Я не знаю много о физике Unity, кроме того, что я изучил в нескольких уроках, поэтому я включу как можно больше соответствующей информации.
Для компонента 2D Rigidbody все силы установлены на 0, кроме массы, равной 0,0001. Тип корпуса - динамический c, а обнаружение столкновений установлено на непрерывное. Мой сценарий движения выглядит следующим образом, прямо из учебника:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerControls : MonoBehaviour
{
public float speed = 1;
private Vector3 target;
void Start()
{
target = transform.position;
}
void Update()
{
if (Input.GetMouseButtonDown(0)) {
target = Camera.main.ScreenToWorldPoint(Input.mousePosition);
target.z = transform.position.z;
}
transform.position = Vector3.MoveTowards(transform.position, target, speed * Time.deltaTime);
}
}
Есть ли более простой способ реализовать плавное перемещение по точке и щелчку?