我想变换底墙的位置。底壁是一个用于碰撞的 3D 立方体。这是立方体和属性的图片。
在图像的右侧,您可以看到一个名为 transform 的属性栏。我想通过脚本访问它并更改位置。这是我尝试使用的代码。
void Start () {
GameObject bottomWall = GameObject.Find("Bottom");
Bottom bottomScript = bottomWall.GetComponent<Bottom>();
bottomScript.wallPos.y = -Camera.main.orthographicSize * 1000;
bottomWall.transform.position.Set(1000, 100, 1000);
bottomWall.GetComponent<Transform>().position.Set(100, 100, 100);
}
当我这样做时没有任何反应。我似乎做不到,非常感谢任何帮助。
最佳答案
Transform.position
返回 Vector3
的副本,而不是引用。所以修改副本不会影响原来的Vector3
位置。
Replace bottomWall.transform.position.Set(1000, 100, 1000);
与
bottomWall.transform.position = new Vector3(100, 100, 100);
与您的问题无关:
由于 Bottom 是 Walls 的子项,因此最好在 Find
中使用 Walls/Button
函数,因为它会告诉 Unity 仅在 Walls 层次结构下查找 Bottom GameObject。当场景中有太多游戏对象时,这会很快。
所以使用 GameObject bottomWall = GameObject.Find("Walls/Bottom");
关于c# - Unity Cube 游戏对象变换位置不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36826396/