Вторник, 24 Декабря 2024, 20:36

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Движение объекта за объектом
AragamiДата: Среда, 25 Мая 2016, 03:45 | Сообщение # 1
частый гость
Сейчас нет на сайте
Приветствую товарищи. Тема такая, в 3д игре пытаюсь сделать чтобы что бы объект «А» следовал за объектом «Б», инициализируя его по public GameObject targetObj;
Вот только не могу додумается как в методе написать, что бы объект «А» следовал за объектом «Б»?
P.S. использую C#.
LertmindДата: Среда, 25 Мая 2016, 06:27 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Уточняй, как именно должен следовать и при каких условиях:
1. Если используется NavMesh, через NavMeshAgent.SetDestination задаётся точка куда надо двигаться.
2. Если хочешь, чтобы объект как будто прилип на расстоянии, то можно, в том числе, через физику Fixed Joint.
3. Если препятствий нет, то можно двигать один объект к другому, с помощью Vector3.MoveTowards (очевидно, если преследующий объект с коллайдером - в Rigidbody ставим isKinematic = true). Вот изменённый пример к MoveTowards, чтобы ещё поворачивался передом к преследуемому объекту и останавливался перед ним на каком-то расстоянии:
Код
using UnityEngine;

public class Example : MonoBehaviour
{
    public Transform Target;
    public float Speed;
    [Tooltip("Как близко приближаться к Target")]
    public float RelaxDistance;

    void Update()
    {
        var dir = Target.position - transform.position;
        if (dir.sqrMagnitude > RelaxDistance*RelaxDistance)
        {
            float step = Speed * Time.deltaTime;
            transform.position = Vector3.MoveTowards(transform.position, Target.position, step);

            transform.LookAt(Target);
        }
    }
}


Сообщение отредактировал Lertmind - Среда, 25 Мая 2016, 06:29
AragamiДата: Четверг, 26 Мая 2016, 19:57 | Сообщение # 3
частый гость
Сейчас нет на сайте
Спасибо отличный скрипт))
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг