我正在创建一个统一的视频游戏,对于关卡选择,我需要将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位置?谢谢 - George:)
答案 0 :(得分:2)
您必须创建一个临时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。
答案 1 :(得分:1)
两件事:
一,对于Unity问题,请考虑使用https://gamedev.stackexchange.com/
二,您无法直接设置变换的位置值。你需要做的是:
levelWindow.transform.position = new Vector3(xPos,yPos,0);