Poo*_*kie 2 c# scripting unity-game-engine
我想改变底壁的位置。底壁是用于碰撞的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);
}
Run Code Online (Sandbox Code Playgroud)
当我这样做时,什么也没有发生。我似乎做不到,对此非常有帮助。
Transform.position返回a的副本,Vector3而不是引用。因此,修改副本不会影响原始Vector3位置。
Replace bottomWall.transform.position.Set(1000, 100, 1000);
Run Code Online (Sandbox Code Playgroud)
与
bottomWall.transform.position = new Vector3(100, 100, 100);
Run Code Online (Sandbox Code Playgroud)
与您的问题无关:
由于Bottom是Walls的子级,因此最好Walls/Button在您的Find函数中使用,因为这将告诉Unity 仅在Walls层次结构下查找Bottom GameObject 。当场景中有太多GameObject时,这是快速的。
所以用 GameObject bottomWall = GameObject.Find("Walls/Bottom");
| 归档时间: |
|
| 查看次数: |
3838 次 |
| 最近记录: |