【问题标题】:Pass Vector Axis by Reference and Update通过参考和更新传递矢量轴
【发布时间】:2014-11-29 11:29:51
【问题描述】:

我试图通过引用传递向量的特定轴。我知道有几种方法可以完成同样的事情,但我的目标是只传递一个参数(向量的 x、y 或 z)并更新该向量。我怎样才能做到这一点?这是我正在尝试做的,但显然不起作用:

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;
}

【问题讨论】:

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


    【解决方案1】:

    Vector3 组件只是floats,我认为没有任何理由这样做。顺便说一句,您的 ChangeVector 函数的签名是错误的。最终应该是这样的:

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

    【讨论】:

    • 是的,我知道。那是更多的伪代码。我要试试你刚刚发布的代码。这可能真的有效:)
    猜你喜欢
    • 1970-01-01
    • 2015-06-12
    • 2011-04-03
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多