我正在统一创建视频游戏,对于关卡选择,我需要将GameObject的x和y位置设置为按钮的x和y位置。

我已经尝试过此代码-

if (gameObject.CompareTag("Level1")) {

        float xPos = gameObject.transform.position.x;
        float yPos = gameObject.transform.position.y;

        levelWindow.SetActive(true);
        levelTitle.text = "One- Dunes of Coral";
        levelDescription.text = "Begin your ocean voyage in the safe haven of the Hawaiian coral reefs...";
        levelWindow.transform.position.x = xPos;
        levelWindow.transform.position.y = yPos;
}


但我收到这样的错误-


  资产/脚本/LevelTapScript.cs(21,39):错误CS1612:无法修改“ UnityEngine.Transform.position”的值类型返回值。考虑将值存储在临时变量中


我的问题是如何使用我的xPos和yPos浮点数设置levelWindow(这是一个游戏对象)的x和y位置?谢谢-乔治:)

最佳答案

您必须创建一个临时Vector3变量,修改x轴,然后将其分配回Transform.position

    if (gameObject.CompareTag("Level1"))
    {

        float xPos = gameObject.transform.position.x;
        float yPos = gameObject.transform.position.y;

        Vector3 newPos = new Vector3(xPos,yPos,0);

        levelWindow.SetActive(true);
        levelTitle.text = "One- Dunes of Coral";
        levelDescription.text = "Begin your ocean voyage in the safe haven of the Hawaiian coral reefs...";
        levelWindow.transform.position = newPos;
        levelWindow.transform.position = newPos;
    }


请注意,执行此操作时z pos将为0。

关于c# - 如何分配GameObject的x和y位置?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39044826/

10-11 19:11