2 回答
TA贡献1831条经验 获得超4个赞
您正在试图让孩子hitObject喜欢这个hitObject.transform.GetChild(0),但如果在hitObject犯规有一个孩子,那么你的程序将抛出一个null exception,所以首先要检查,如果你想访问有哪些,然后访问它。例如:
public void SetHitObjectToActive(GameObject hitObject)
{
if(hitObject.transform.childCount>0){
GameObjectchild = child hitObject.transform.GetChild(0);
if(GameObjectchild.childCount>0 ){
GameObjectchild.GetChild(0).gameObject.SetActive (true);}
}
}
但总的来说,我认为最好先检查一下你碰撞的物体是否是正确的物体,然后确保做你想做的
为此,您可以使用tagsornames或layers,首先,如果您想使用标签,然后将标签分配给您要指定的对象,例如敌人
if (Physics.Raycast (ray, out hit)) {
if( hit.collider.gameObject.tag == "enemy" )
{
SetHitObjectToActive (hit.collider.gameObject);
}
}
- 2 回答
- 0 关注
- 175 浏览
添加回答
举报