gpt4 book ai didi

c# - Unity Cube 游戏对象变换位置不变

转载 作者:行者123 更新时间:2023-11-30 20:20:25 24 4
gpt4 key购买 nike

我想变换底墙的位置。底壁是一个用于碰撞的 3D 立方体。这是立方体和属性的图片。

enter image description here

在图像的右侧,您可以看到一个名为 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);

与您的问题无关:

由于 BottomWalls 的子项,因此最好在 Find 中使用 Walls/Button函数,因为它会告诉 Unity 仅在 Walls 层次结构下查找 Bottom GameObject。当场景中有太多游戏对象时,这会很快。

所以使用 GameObject bottomWall = GameObject.Find("Walls/Bottom");

关于c# - Unity Cube 游戏对象变换位置不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36826396/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com