我有兩個游戲對象?;締栴}:“當我旋轉第 1 圈時,我想以與因子 x 相同的方式旋轉第 2 圈”如何將圍繞圓 2 的每個局部軸的旋轉與圓 1 的可交互旋轉同步,并按因子 x 縮放該旋轉?設置 transform.right 相等不起作用,仍然有很多自由度。(局部軸,因為我希望一個或兩個游戲對象也傾斜,但彼此無關。)嘗試使用旋轉矩陣進行數學運算并沒有真正奏效,因為它們每幀都被評估,從而永遠旋轉對象 2。非常感謝!
1 回答

PIPIONE
TA貢獻1829條經驗 獲得超9個贊
假設您僅圍繞一個軸旋轉(如圖所示),您可以使用例如Quaternion.Angle每幀獲得以 circle2 度數為單位的旋轉差異
private Quaternion lastCircle2Rot;
//...
float rotDelta = Quaternion.Angle(lastCircle2Rot, circle2.transform.rotation);
lastCircle2Rot = circle2.transform.rotation;
而不是使用例如Transform.RotateAround相應地轉動 circle1
public float multiplier;
// e.g. rotate around local x = right
Vector3 YourAxis = circle1.transform.right;
circle1.transform.RotateAround(Vector3.zero, YourAxis, rotDelta * multiplier);
如果使用例如正確的或另一個“干凈”的向量,你也可以簡單地使用
circle1.transform.Rotate(Vector3.right, rotDelta * multiplier);
正如默認情況下在本地空間中完成的那樣。
- 1 回答
- 0 關注
- 141 瀏覽
添加回答
舉報
0/150
提交
取消