【发布时间】:2021-02-18 10:24:12
【问题描述】:
我正在 Unity 中制作一个 VR 数据可视化应用程序,我的父母有很多孩子(只是一些原始立方体),我可以通过将父母的刚体设置为与我跟踪的 VR 控制器相同的速度来在场景中折腾。
Rigidbody rb = GetComponent<Rigidbody>();
Vector3 controllerVelocity = Player.instance.rightHand.GetTrackedObjectVelocity(); // how I ref the controller velocity in SteamVR
rb.velocity = controllerVelocity * 2f; // the 2f is just to speed up the velocity
上面的代码工作正常,但问题是我认为可以由玩家调整的子对象的比例会影响父对象的移动速度。或者也许只是当孩子们很大时......控制器速度相对太慢?基本上我不需要这种情况;无论孩子的尺度/质量如何,我都希望父母的刚体以大致相同的速度移动。
所以为了实现这一点,我想使用 Rigidbody.AddForce 但它似乎没有任何区别,即较大的孩子仍然移动得更慢。这是我目前所拥有的:
Rigidbody rb = GetComponent<Rigidbody>();
Vector3 controllerVelocity = Player.instance.rightHand.GetTrackedObjectVelocity();
rb.AddForce(controllerVelocity * 2f, ForceMode.VelocityChange);
我也尝试过 ForceMode.Acceleration,但没有任何动静?我是否错误地使用了 AddForce?还是我只需要一个基于孩子大小的缩放倍数?欢迎任何帮助。
【问题讨论】:
标签: c# unity3d rigid-bodies