簡體   English   中英

Unity3D:將孩子移動到父母的軌道上

[英]Unity3D: Moving a child to orbit a parent

我做了一個游戲,我制作了兩個球體,一個兒童球體和一個父球體。 父球體比子球體大,我試圖讓孩子在父球體周圍移動。

在以下代碼中,子球體以圓圈形式移動。 問題是它不會相對於父對象移動,所以每當我移動對象的父對象時,子進程停留並且不再在父對象周圍移動,而是自由移動。 我接受這個問題很多,但如果有人可以做出貢獻,我將不勝感激。 這是我移動球體的代碼(不是與父對象有關):

void Update(){
    timeCounter += Input.GetAxis("Horizontal") * Time.deltaTime; 
    float x = Mathf.Cos (timeCounter);
    float y = Mathf.Sin (timeCounter);
    float z = 0;
    transform.position = new Vector3 (x, y, z);
}

我還打算移動父球體,我希望子球體跟隨並仍然相對於父球體移動。

每當我移動對象的父節點時,子節點就會停留並且不再在父節點周圍移動

那是因為你正在移動球體

transform.position

什么時候應該

transform.localPosition

無論是那個還是你能做到的

transform.position = transform.parent.position + new Vector3 (x, y, z); 

編輯:個人而言,我會做后者甚至不是球體的父母,這樣你就可以旋轉母球或獨立操縱它而不會以奇怪的方式影響其他球體

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM