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

标签 c# unity3d scripting

我想变换底墙的位置。底壁是一个用于碰撞的 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/

相关文章:

c# - 如何在 WCF 中使用自定义序列化或反序列化来强制对数据联系人的每个属性创建一个新实例?

c# - c# 是否存在与 Java 的 equals 和 gethashcode() 相同的问题?

firebase - 如何处理 Unity 上的 Firebase 身份验证错误

c# - 使用正则表达式和 |运算符(operator)

.net - 寻找一个锁定的脚本解释器

C# 将所有可滚动面板保存为图像

c# - 阻止函数并等待事件 C#

c# - Unity3d重启当前场景

linux - While 语句有助于 bash 脚本编写

windows - 查找并重命名没有扩展名的文件?