Unity 3D 使对象跟随玩家

Posted

技术标签:

【中文标题】Unity 3D 使对象跟随玩家【英文标题】:Unity 3D Make Objects Follow Player 【发布时间】:2022-01-17 03:52:54 【问题描述】:

我试图让物体跟随玩家,在 Z 轴上没有延迟,但在 X 轴上延迟。当玩家输入对象(硬币)触发器时,我将此对象添加到列表中,并使用此代码更新每个人的位置。每个硬币都有当前硬币跟随的上一个和下一个硬币。


    foreach (Coin coin in coins)
    
        Vector3 desiredPos = new Vector3(
            coin.previous.transform.position.x,
            coin.previous.transform.position.y,
            coin.previous.transform.position.z + .15f);
            
        Vector3 smoothedPos = Vector3.Lerp(
            coin.transform.position, 
            desiredPos, 
            smoothness);
        
        coin.transform.position = smoothedPos;
    

我想得到这个结果 https://youtube.com/shorts/PHAg8Pqf0mA?feature=share

这就是我得到的

https://youtube.com/shorts/fzukzL_0r74?feature=share

但正如您所见,代币有时会挣扎。它没有正确更新他们的位置。我不想让它成为孩子,因为我需要在 x 轴上延迟移动它们。

如果你能帮助我,我将不胜感激。

【问题讨论】:

请使用正确的标签!请注意,unityscript 是或更好地曾经是一种 javascript 风格,类似于早期 Unity 版本中使用的自定义语言,并且现在已经不推荐使用了!您的代码显然在c# .. 【参考方案1】:

您正在使用 Vector3.Lerp,它会处理所有 x y 和 z。如果您只想在 x 轴上进行 lerp,则应在 x 上使用 Mathf.Lerp:

var x = Mathf.Lerp(x, desiredPos.x, 平滑度);

【讨论】:

感谢您的帮助:)

以上是关于Unity 3D 使对象跟随玩家的主要内容,如果未能解决你的问题,请参考以下文章

Unity3D更改Main Camera游戏对象以适应多人游戏

Unity3D摇杆

关于Unity3D中角色跟随移动的机关同时移动的问题

Unity第三人称游戏摄像机跟随

Unity3D的加速度对象的精度以及对加速度两次积分得到手机在对应方向上的移动距离

Unity3D粒子系统粒子不跟随旋转