首页 > 解决方案 > 如何让一个对象始终在另一个对象前面?

问题描述

我有一个对象和一个玩家。无论玩家在什么位置,如何使对象始终在玩家面前?

嘿伙计们感谢您的回复!只是补充一点,该对象在随机位置生成,然后我让它向玩家移动(这就是为什么我没有让它成为玩家的孩子)。从那时起,它将永远留在玩家面前。

标签: c#unity3d

解决方案


您可以将该对象设置为播放器的子对象

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);   
}

最后,一旦对象到达目标点,您就可以使其成为玩家的子对象。


推荐阅读