-
Creator 版本: v2.2.0
-
目标平台:web
想請教一下,如果我想讓任意節點永遠面向另一個任意節點時,應該如何處理歐拉角的繼承關係?
ex.
A.a1.a2.Object 要面向 B.b1.target
其中各節點的父節點都有任意角度的旋轉
在v2.2.0中有相關的api可以用嗎? 謝謝
Creator 版本: v2.2.0
目标平台:web
想請教一下,如果我想讓任意節點永遠面向另一個任意節點時,應該如何處理歐拉角的繼承關係?
ex.
A.a1.a2.Object 要面向 B.b1.target
其中各節點的父節點都有任意角度的旋轉
在v2.2.0中有相關的api可以用嗎? 謝謝
A,B两个点转换成世界坐标,再算出夹角
方案一
let srcAP = a.parent;
a.parent = cc.fine(‘Canvas’);
let srcBP = b.parent;
b.parent = cc.find(‘Canvas’);
//
b.angle = 180-a.angle;
//
a.parent = srcAP;
b.parent = srcBP;
方案二
let angle = a.angle;
let parent = a.parent;
while(parent){angle += parent.angle; parent = parent.parent};
let angleB = b.angle;
let parentB = b.parent;
while(parentB){angle += parentB.angle ; parentB = parentB.parent};
b.angle = 180 - angle + angleB;
感謝回覆,以上兩個方法在2D環境中是可行的
我想瞭解的是當舞台是3D環境
考慮到歐拉角 Y-Z-X 的計算關係
當父節點有任意XYZ向旋轉時
子節點該如何補償這旋轉量
意即:對於世界座標而言,它的相對歐拉角是(0, 0, 0)
搜尋時得知Unity有Vector.RotateTowards這類function可用
不知道creator v2.2有類似的東西嗎?
試過直接引用 lookAt,不過效果不如預期