2014-10-04 58 views
0

我想通過引用傳遞矢量的特定軸。我知道有幾種方法可以完成同樣的事情,但我的目標是隻傳入一個參數(Vector的x,y或z),並且要更新該Vector。我怎樣才能做到這一點?這就是我想要做的,但顯然是行不通的:通過引用和更新傳遞矢量軸

private void MainMethod() 
{ 
    Vector3 myVector = new Vector3(1, 2, 3); 
    ChangeVector(ref myVector.x); 
    ChangeVector(ref myVector.y); 

    //this should all be true 
    bool newX = myVector.x == 4; //true 
    bool newY = myVector.y == 4; //true 
    bool newZ = myVector.z == 3; //true 
} 

private void ChangeVector(ref Vector3.axis myVectorAxis) 
{ 
    myVectorAxis = 4; 
} 

回答

0

Vector3組件是根本floats,我看不出有任何理由這樣做。順便說一句ChangeVector函數的簽名是錯誤的。它應該最終是這樣的:

private void ChangeVector(ref float myVectorAxis) 
{ 
    myVectorAxis = 4f; 
} 
+0

雅,我知道。這是更多的psudeo代碼。即時通訊將嘗試你剛剛發佈的代碼。這可能實際上工作:) – Evorlor 2014-10-04 19:13:47