在gameObject中创建一个gameObject
本文关键字:gameObject 一个 创建 | 更新日期: 2023-09-27 18:25:10
如何在gameObject中创建gameObject?大家好,我无法解决这个解决方案问题,不知道为什么,但它不起作用,我是unity 3d的新手,所以也许我在编写代码时犯了错误,感谢所有为我付出时间的人。
我想从你那里得到一个建议,我如何在不使用太多cpu的情况下做到这一点。
我试过了:
GameObject.Find(..),GameObject.Instantiate,GameObject.Find("TerrainData").GetComponentInChildren
它不起作用。这是我的代码:
if (parentObj == 1)
{
GameObject newParentObject = new GameObject();
newParentObject.active = true;
newParentObject.name = "TerrainData";
//newObjs.transform.position = loc*chunkSize;
//newObjs.SendMessage("regenerateMesh");
parentObj++;
}
while (m_terrainToCreate.Count > 0 && Time.realtimeSinceStartup - curTime < 0.016)
{
Vector3 loc = m_terrainToCreate.Dequeue();
int[] pos = getCachedChunkPos(Mathf.RoundToInt(loc.x), Mathf.RoundToInt(loc.y), Mathf.RoundToInt(loc.z));
GameObject newObj = m_meshCache[pos[0], pos[1], pos[2]];// = m_freePool.Dequeue();
newObj.active = true;
newObj.name = "TerrainChunk (" + loc.x.ToString() + ", " + loc.y.ToString() + ", " + loc.z.ToString() + ")";
newObj.transform.position = loc*chunkSize;
newObj.SendMessage("regenerateMesh");
}
""linked",设置孩子的transform.parent"是的,就是这样。"。如何捕捉"TerrainData"游戏对象?
已尝试:
GameObject newObj = m_meshCache[pos[0], pos[1], pos[2]];// = m_freePool.Dequeue();
newObj.transform.parent = GameObject.Find("TerrainData");
newObj.gameObject.transform.parent = gameObject.transform.Find ("TerrainData");
newObj.transform.parent = transform.Find("TerrainData");
但我认为它不能改变物体?它转换了"Transform"?
试试这个。。。
创建一个包含对象的属性:
public Transform Terrain;
然后你可以做这样的事情。。。
terrain = Instantiate(Terrain) as Transform;
terrain.parent = gameObject.transform;
terrain.position = new Vector3(0, 0, 0);
terrain.name = "My Terrain";