Как создать объект, чтобы следовать за моим игроком - PullRequest
0 голосов
/ 23 июня 2019

Я ищу способ сделать что-то вроде этого: Градиус

В этой игре шары следуют за игроком.Как это сделать в Unity, где мои шары следуют за моим игроком.

Спасибо!

1 Ответ

0 голосов
/ 24 июня 2019

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

Я создал простую тестовую сцену и выполнил следующие шаги:

  • Я создал 2 игровых объектапод названием Player и FollowPlayer
  • Я написал нижеприведенный скрипт и прикрепил его к Player

public static event Action<Vector3> FollowMe;

[SerializeField] private float _followDistance;

private Vector3 _previousPosition;

private void Start()
{
    _previousPosition = transform.position;
}

private void Update()
{
    if(Vector3.Distance(transform.position,_previousPosition) > _followDistance)
    {
        if(FollowMe != null)
        {
            FollowMe.Invoke(_previousPosition);
        }

        _previousPosition = transform.position;
    }
}

  • Затем для объекта FollowPlayer я написал скрипт ниже и прикрепилк этому

private void Start()
{
    Player.FollowMe += OnFollowMe;
}

private void OnDestroy()
{
    Player.FollowMe -= OnFollowMe;
}

private void OnFollowMe(Vector3 position)
{
    transform.position = position;
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...