Как сохранить объект всегда перед другим объектом?

#c# #unity3d

#c# #unity3d

Вопрос:

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

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

Комментарии:

1. Что вы пробовали до сих пор?

2. Итак, пока я переместил объект в сторону проигрывателя. Который постоянно движется к игроку, но не остается перед ним. @SnakeEyes

3. и почему бы вам просто не добавить некоторое количество, которое поместит этот объект перед вашим плеером?

4. Эй, что ты имеешь в виду amount ?

5. @anaksky2k19 Я имел в виду код, который вы писали до сих пор

Ответ №1:

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

 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;
  

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

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

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

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

 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. Да, это будет работать, но тогда дочерний элемент должен быть фиксированным — статическим.

2. Эй, я обновил его, чтобы уточнить больше. Объект не всегда статичен.

3. @anaksky2k19 Я также обновил свой anseer. Попробуйте и дайте мне знать

Ответ №2:

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