繁体   English   中英

如何指定GameObject的x和y位置?

[英]How do I assign a GameObject's x and y position?

我正在创建一个统一的视频游戏,对于关卡选择,我需要将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;
}

但我得到一个像这样的错误 -

Assets / Scripts / 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。

两件事情:

一,对于Unity问题,请考虑使用https://gamedev.stackexchange.com/

二,不能直接设置变换的位置值。 你需要做的是:

levelWindow.transform.position = new Vector3(xPos,yPos,0);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM