Перемещение GameObjects с помощью скрипта плавно по экрану, как анимация в Unity - PullRequest
0 голосов
/ 21 апреля 2019

Я пытаюсь переместить объекты GameObject в разные места на экране, я хочу, чтобы они двигались как анимация, плавно перемещаясь по ходу программирования.Я использую Unity с Leapmotion

Я попробовал приведенный ниже код, но он просто сразу перемещает объект в новую позицию, он не перемещается медленно, так что пользователь может видеть, как он перемещается из текущей позиции в новую,- как анимация.

    myobject.transform.Translate(0f,0.5f,1f);

Ваша помощь будет оценена.Спасибо заранее

Ответы [ 3 ]

1 голос
/ 21 апреля 2019

transform.Translate продолжит движение объекта в указанном направлении

То, что вы ищете, это Vector3.Lerp

obj.transform.position = Vector3.Lerp(obj.transform.position, new Vector3(0f, 0.5f, 0f), Time.deltaTime * speed);
1 голос
/ 21 апреля 2019

Вы должны использовать Time.deltaTime в Update или Time.fixedDeltaTime в FixedUpdate

например

myobject.transform.position += (direction * Time.deltaTime);
0 голосов
/ 21 апреля 2019

Еще один способ перемещения GameObject, но вместо указания точки назначения используется вектор движения:

private Rigidbody rb;

void Start()
{
    rb = GetComponent<Rigidbody>();
    ChangeDirection(new Vector3(1,1,0));
}

void ChangeDirection(Vector3 dir)
{
    rb.velocity = dir;
}

Не забудьте добавить компонент Rigidbody на объект.

...