我有一个随机世界,其中有一些随机实例化的树。
我使用以下代码实例化它们:
GameObject go = Instantiate(treePrefab);
go.name = "Tree";
go.tag = "Wood";
go.layer = 9;
go.transform.position = new Vector3(y + UnityEngine.Random.Range(-0.5f, 0.5f), heightPos, x + UnityEngine.Random.Range(-0.5f, 0.5f));
go.transform.Rotate(0, UnityEngine.Random.Range(0, 360), 0);
x
和y
是for循环的一部分,该循环遍历我世界的所有位置(如网格)。
heightPos
是特定点(x / y)上当前的地形高度。
我的问题是树上的预制物体的位置为0、0、0。
每个实例化的树也都设置为0、0、0。
我使用完全相同的代码实例化岩石,仙人掌,羽毛,汽车和许多其他东西,并且效果很好。
但是它总是在树上失败。
我仔细阅读了代码,除预制件(当然)外,其他对象没有任何区别。
所以我认为它必须与预制件的设置有关。
但是我的预制件没有动画器,它不是静态的或类似的东西。
这是我的树型预制件在检查器中的外观:
这是场景视图中的样子:
答案 0 :(得分:0)
您可以创建另一个游戏对象并将该实例作为该游戏对象的子对象,因此即使该实例始终处于(0,0,0),您也可以始终更改父对象的位置。