2015-06-01 24 views
0

這樣的IM使這個統一的遊戲,我必須在比賽中,即時通訊移動遊戲物體和旋轉,事情是支點犯規棒的對象。當遊戲開始時它在現場旋轉得很好,但是當它被移動時,樞軸點沒有跟隨,並且它仍然圍繞其開始位置旋轉。我使用一個「額外」的遊戲對象來首先獲得正確的位置的樞軸點,這個額外的對象被附加到第一個對象壽,所以它應該遵循它。我的支點不按照我的遊戲對象

任何想法可能是什麼原因/解決方案呢?我在這裏拉我的頭髮一直在整個晚上搬東西>。 <

下面是旋轉非常基本的代碼,這就是懷疑它雖然。

public float speed = 1f; 

// Use this for initialization 
void Start() 
{ 

} 

// Update is called once per frame 
void Update() 
{ 

    if (Input.GetKey(KeyCode.W))            // Gå fremad  
    { 
     transform.position -= new Vector3 (speed * Time.deltaTime, 0.0f, 0.0f); 
    } 

    if (Input.GetKey(KeyCode.S))            // Gå baglæns  
    { 
     transform.position += new Vector3 (speed * Time.deltaTime, 0.0f, 0.0f); 
    } 

    if (Input.GetKey(KeyCode.Q))            // Strafe mod venstre 
    { 
     transform.position -= new Vector3 (0.0f, 0.0f, speed * Time.deltaTime); 
    } 

    if (Input.GetKey(KeyCode.E))            // Strafe mod højre 
    { 
     transform.position += new Vector3 (0.0f, 0.0f, speed * Time.deltaTime); 
    } 

    if (Input.GetKey(KeyCode.D))            // Drej mod venstre  
    { 
     transform.RotateAround (Vector3.zero, Vector3.up, 20 * Time.deltaTime); 
    } 

    if (Input.GetKey(KeyCode.A))            // Drej mod højre 
    { 
     transform.RotateAround (Vector3.zero, Vector3.up, -20 * Time.deltaTime); 
    } 
+0

是他的孩子還是父對象的樞軸點? –

+0

樞軸點是父母,對象的模型和碰撞器是兒童,我應該做的不同嗎? – Kalle

+0

如果你是一個具有父母的移動對象,父母不會移動。孩子們遵循父母的轉變,而不是相反。嘗試使樞軸點成爲小孩,並嘗試移動父項。然後,樞軸點將與對象一起移動。 –

回答

0

不使用:

transform.RotateAround(Vector3.zero, Vector3.up, 20 * Time.deltaTime); 

如果你使用這個,你會始終圍繞零矢量旋轉 - 這是(0,0,0) - 在世界座標系(而不是本地)。

,如果你想繞自己的中心使用你的對象:

transform.Rotate(xAngle, yAngle, zAngle, relativeTo); 

,如果你想你的對象相對旋轉的另一個對象(我不認爲你想要的),但無論如何:

transform.RotateAround(otherGameObject.transform.position, Vector3.up, 20 * Time.deltaTime);