#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 в качестве родительского объекта. Таким образом, объект будет определять свою позицию после позиции игрока, и после того, как он однажды окажется перед игроком, он всегда будет оставаться там, независимо от его положения.