c# - 如何让一个物体始终位于另一个物体的前面?

标签 c# unity-game-engine

我有一个物体和一个玩家。如何使对象始终位于玩家前方,无论玩家处于什么位置?

大家好,感谢您的回复!只是要添加该对象在随机位置生成,然后我使其向玩家移动(这就是为什么我没有将其设为玩家的子级)。从那时起,它将始终停留在玩家面前。

最佳答案

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

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;

现在 child 将与 parent 一起移动。

更新:对象在随机位置生成,然后我让它向玩家移动

然后你可以做的是创建一个空对象,这将是该对象的最终位置。然后你将这个空对象设为播放器的子对象。

然后你要做的就是让生成的对象移动到该空对象的位置。您可以添加类似 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);   
}

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

关于c# - 如何让一个物体始终位于另一个物体的前面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55632071/

相关文章:

macos - VS Code 找不到 OmniSharp 的 Mono

c# - 团结: read image pixels

c# - Windows Phone 应用程序缺少 EventToCommand

unity-game-engine - Unity 不像 Hololens 那样渲染

android - NGUI:如何在实时添加新项目时重置/更新 UIgrid 和 UIScrollBar

c# - 读取 Excel 单元格值并使用 C# 反序列化

facebook - Unity3d Android App无法在Facebook AppCenter中列出

c# - 如何动态地将文本框中的数据绑定(bind)到 ListView 中

c# - 要解密的数据超出了该模数的最大值 36 字节

c# - 信箱不可用。服务器响应为 : 5. 7.1 中继凭据无效