Как сделать так, чтобы движение «point-and-click» для unity2d было плавным? - PullRequest
0 голосов
/ 09 февраля 2020

У меня есть спрайт прямоугольного плеера с приложенным 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);
    }
}

Есть ли более простой способ реализовать плавное перемещение по точке и щелчку?

...