【发布时间】:2020-07-23 06:07:07
【问题描述】:
我在一个网络教程中找到了这段代码,可以让 Unity 中的对象漂浮在水面上:
RequireComponent (typeof (Rigidbody))]
public class ObjectFloatScript : MonoBehaviour {
public float waterLevel = 0.0f;
public float floatThreshold = 2.0f;
public float waterDensity = 0.125f;
public float downForce = 4.0f;
private float forceFactor;
private Vector3 floatForce;
void FixedUpdate () {
forceFactor = 1.0f - ((transform.position.y - waterLevel) / floatThreshold);
if (forceFactor > 0.0f) {
floatForce = -Physics.gravity * GetComponent<Rigidbody> ().mass * (forceFactor - GetComponent<Rigidbody> ().velocity.y * waterDensity);
GetComponent<Rigidbody> ().AddForceAtPosition (floatForce, transform.position);
}
}
}
我不明白的是 Rigidbody.velocity.y 和水密度之间的关系?有人可以帮忙吗? 谢谢
【问题讨论】:
标签: unity3d