2017-04-20 71 views
0

我覺得這很簡單,但我一直在尋找一個在線解決方案,並且找不到合適的結果 - 如果它已被寫入,則表示歉意。當父母旋轉時,孩子的位置不會改變

我有一個球,它是在其上緩慢旋轉是用一個簡單的腳本,Y軸:
transform.Rotate(0, Time.deltaTime, 0);

我有連接到這個領域,其與母公司旋轉的子對象。到現在爲止還挺好。

我已經把樞軸孩子的心,我試圖讓子對象的位置,因爲它是使用父旋轉:

void Update() 
{ 
    Debug.Log(this.transform.position); 
} 

然而,更新提供的位置孩子好像沒有從父母那裏得到。

你們是否可以指出我在獲取兒童位置的方向,當它連接到球體父母更新時?

謝謝你的時間和耐心。

回答

2

不確定要真正理解什麼「孩子在附屬於球體父母時的位置,因爲它更新」意味着但我會試一試。

我想您的層次結構是這樣的:

-- Sphere (rotating along its Y axis) 
    -- Child (that rotates with "Sphere" parent) 
    -- Pivot (in the center of the "Child" object and rotating along its Y axis) 
     -- Child2 (that rotates with "Pivot" parent) 

如果你想獲得CHILD2相對的位置,你可以做這樣的事情:
Vector3 relativePosition = Child2.transform.position - Sphere.transform.position;

您也可以使用Transform.localPosition來獲取對象相對於其父對象的位置。在這種情況下,你可以使用這種方式:
Vector3 relativePosition = Child.transform.localPosition + Pivot.transform.localPosition + Child2.transform.localPosition

希望這有助於

+1

你好Kardux,這是非常有用的故障排除 - 我這是位新秀的錯誤 - 樞軸的孩子在模特的中心。一旦我重置了這個數據透視表並重新導入它 - 它與你以前的一段代碼一起工作。基本上我想更新孩子的位置,所以它的代碼與線渲染器一起使用。感謝您的時間和耐心。 –

+0

是的,當玩弄皮特對齊對象,錯誤放置樞軸可以搞砸你的頭腦相當快:)很高興它幫助! – Kardux

相關問題