如何將物件的角度設定為 HingeJoint2D 的極限?我的意思是這樣的:
gameObject.transform.rotation = HingeJoint2D.limits.max;
uj5u.com熱心網友回復:
由于您在 2D 中作業,因此您可能希望將物件設定為在鉸鏈的最大/最小方向上向上或向右。
您可以up使用 Quaternion.LookRotation將物件的區域方向設定為與 HingeJoint2D 相同的方向:
HingeJoint2D hj; // The hinge joint in question
Transform minTransform; // Transform you want to set to point up towards min
Transform maxTransform; // Transform you want to set to point up towards max
Vector3 neutralLocalDir = Vector3.up; // neutral direction of joint.
// Value to be tuned or calculated in Start
// ...
Vector3 neutral = hj.transform.TransformDirection(neutralLocalDir);
Vector3 minDir = Quaternion.AngleAxis(hj.limits.min, Vector3.forward) * neutral;
minTransform.rotation = Quaternion.LookRotation(Vector3.forward, minDir);
Vector3 maxDir = Quaternion.AngleAxis(hj.limits.max, Vector3.forward) * neutral;
maxTransform.rotation = Quaternion.LookRotation(Vector3.forward, maxDir);
您可以使用恒定值作為中性值,或者如果您需要動態值,請考慮在 Start
uj5u.com熱心網友回復:
Ruzihms 解決方案應該可以正常作業。我通過transform.rotation.z將四元數宣告為HingeJoint2D 限制的另一種解決方案,如下所示:
Quaternion minAngle = Quaternion.Euler(transform.rotation.x, transform.rotation.y, hinge.limits.min);
Quaternion maxAngle = Quaternion.Euler(transform.rotation.x, transform.rotation.y, hinge.limits.min);
transform.rotation = maxAngle; //or minAngle :)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/408540.html
標籤:
上一篇:Unity如何接收http請求?
下一篇:如何避免異步無效?
