当前位置: 首页 > 编程语言 > C#

GameObject不允许多个子对象共享

时间:2023-04-10 13:02:47 C#

GameObject不允许多个子对象所以基本上我试图将一堆子对象添加到一个GameObject。父SnakeHead称为SnakeHead,所有其他SnakeBodyPart称为SnakeBodyPartspublicclassGameController:MonoBehaviour{publicGameObjectsnakeHead;公共游戏对象snakeBodyPart;公共列表snakeBodyParts;voidStart(){snakeBodyParts=newList();对于实例化(蛇头)我=0;我<4;i++){varnewObj=Instantiate(snakeBodyPart);newObj.transform.position=newVector3(snakeHead.transform.position.x,snakeHead.transform.position.y-(i+1),0);newObj.transform.SetParent(snakeHead.transform);snakeBodyParts.Add(newObj);}}}所以它就像snakeHead.transform.childCount;蛇头.transform.childCount;是1.任何人都可以向我解释这是这种行为吗?SnakeHead和SnakeBodyPart都是一个简单的Sphere,作为3D对象添加到我的项目中。我认为snakeHead和snakeBodyPart都是预制件。问题是您使用snakeHead预制件而不是实例化的snakeHead作为snakeBodyPart的父级。当你实例化snakeHead时,你应该将它存储到一个临时变量中,用它来设置每个实例化的snakeBodyPart(newObj)的父变量。Instantiate(snakeHead)应该是GameObjectsnakeHaedObj=Instantiate(snakeHead);然后你可以做snakeHaedObj.transform.childCount;稍后检查计数并使用newObj.transform.SetParent(snakeHaedObj.transform);设置每个snakeBodyPart的父newObj.transform.SetParent(snakeHaedObj.transform);.像这样:publicGameObjectsnakeHead;公共游戏对象snakeBodyPart;公共列表snakeBodyParts;游戏对象snakeHaedObj;voidStart(){snakeBodyParts=newList();snakeHaedObj=实例化(snakeHead);对于(inti=0;i(snakeBodyPart);newObj.transform.position=newVector3(snakeHead.transform.position.x,snakeHead.transform.position.y-(i+1),0);newObj.transform。SetParent(snakeHaedObj.transform);snakeBodyParts.Add(newObj);}}请注意,childCount只会返回直接子childCount下的对象,看看这篇文章就知道怎么做了,以上都是关于C#的学习教程:GameObject不允许多子共享如果内容对您有用,需要进一步了解C#学习教程,希望您多加关注,本文收集自网络,不代表正文位置,如涉及侵权,请点击维权联系管理员删除,如需转载请注明出处: