Как держать объект всегда перед другим объектом? - PullRequest
2 голосов
/ 11 апреля 2019

У меня есть объект и игрок.Как мне сделать так, чтобы объект всегда был перед игроком, независимо от того, в каком положении находится игрок?

Эй, ребята, спасибо за ваши ответы!Просто добавьте, что объект появляется в произвольной позиции, затем я заставил его двигаться к игроку (именно поэтому я не сделал его дочерним игроком).С тех пор он всегда будет стоять перед игроком.

Ответы [ 2 ]

3 голосов
/ 11 апреля 2019

Вы можете установить этот объект как дочерний элемент игрока

GameObject childPlacehoderObj;   // Set this to the child you want to give a home
GameObject playerObj;  // This will be the parent

childPlacehoderObj.transform.parent = playerObj.transform;

Теперь ребенок будет двигаться вместе с родителем.

Обновление: объект появляется в произвольной позиции, затем я заставил его двигаться к игроку

Тогда вы можете создать пустой объект, который будет конечной позицией этого объекта. И этот пустой объект вы делаете из него ребенком игрока.

Тогда то, что вы делаете, это заставляете объект, которого он породил, перемещать в положение этого пустого объекта. Вы можете добавить что-то вроде this в объект, который должен быть перед игроком

void Update()
{
    // Move our position a step closer to the target.
    float step =  speed * Time.deltaTime; // calculate distance to move
    transform.position = Vector3.MoveTowards(transform.position, childPlacehoderObj.position, step);   
}

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

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

Может быть, вы могли бы просто установить игрока в качестве родителя объекта. Таким образом, объект будет определять свою позицию после позиции игрока, и после того, как он окажется перед игроком, он всегда будет оставаться там, независимо от его позиции.

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