通过引用和更新传递矢量轴

时间:2014-10-04 17:32:11

标签: c# vector unity3d pass-by-reference

我试图通过引用传递向量的特定轴。我知道有几种方法可以完成同样的事情,但我的目标是只传入一个参数(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;
}

1 个答案:

答案 0 :(得分:0)

Vector3组件只是floats,我没有看到任何理由这样做。顺便说一句ChangeVector功能的签名是错误的。最终应该是这样的:

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