Я только начал с единицы и последовал своему примеру проекта 2D НЛО.
Стремясь расширить его, я придумал причудливый способ управления своим игроком.
Он всегда движется по круговым путям, и как только я нажимаю кнопку, направление круга изменяется, и воображаемый центр круга пересекается, как показано на рисунке ниже. Это позволяет вам перемещаться по фигуре 8 или S, и это довольно забавно.
Однако, как только я понял, как сделать это движение, объект игрока больше не обнаруживал столкновения.
В исходном примере вся обработка Movemet выполняется внутри FixedUpdate (). Я, однако, использую Update (), так как первый, кажется, вообще не работает с моим кодом (т.е. вообще не перемещается).
Это мой код движения:
public class ControlledRotation : MonoBehaviour
{
public float radius = 3f;
public float speed = 3f;
private float timeCounter = 0;
private float direction = 1f;
private Vector3 offset;
private Rigidbody2D rb2d;
void Start()
{
offset = transform.position;
}
void Update()
{
if (Input.GetKeyDown(KeyCode.RightArrow))
{
//change the offset from the circle center and the rotation direction on keypress
offset += new Vector3(Mathf.Cos(timeCounter), Mathf.Sin(timeCounter), 0) * radius * direction * 2;
direction *= -1;
}
timeCounter += Time.deltaTime * direction * speed;
transform.position = new Vector3(Mathf.Cos(timeCounter), Mathf.Sin(timeCounter)) * radius * direction + offset;
}
}
Объект Plyer имеет 2D твердое тело и 2D Collider Collect. У кошельков, с которыми это должно столкнуться, есть Box Collider 2D. Тем не менее, НЛО может просто пройти стены.
Я предполагаю вероятную причину в том, что я просто изменяю transform.position или поскольку я использую Update / FixedUpdate неправильно.
Если вам посоветуют, как я могу сохранить выбранный механизм управления движением и при этом столкнуться с объектами, я был бы очень признателен:)
Edit:
Я чувствую, что мне нужно пойти с использованием твердого тела и приложить некоторую силу ... но я не понял, как воспроизвести это движение с помощью сил, а также силы, кажется, не очень четкие в ответ