我的 n GameObjects
是母亲GameObject
的孩子。
每个孩子都附有自己的子脚本。如果我点击一个子对象,所有孩子会回复。
当孩子被加载时,它将自己置于父母之下并且我也传递了一个数字,所以如果我愿意,我可以在以后跟上它。
这是我的脚本。真的不是很多。谁知道我做错了什么?
public GameObject parentGameObject;
public int childIndex;
void Start () {
transform.parent = parentGameObject.transform;
}
void Update () {
if (Input.GetMouseButton(0)) {
Die();
}
}
public void Die () {
Debug.Log("Child " + this.childIndex + " clicked");
Destroy(this.gameObject);
}
答案 0 :(得分:2)
由于此脚本附加到您的所有子对象,因此它们都会检查是否单击了鼠标,因此在检测到鼠标点击时都会自行销毁(因为在每个脚本中都检测到鼠标单击)。 / p>
我建议在母亲游戏对象中使用一个脚本,该脚本使用Raycast并附加碰撞器并标记每个孩子以检测其中一个孩子何时被点击,然后销毁相应的点击对象。
目前尚不清楚你是否在2d,但它的例子是这样的:
void Update()
{
if (Input.GetMouseButtonDown(0))
{
// cast a ray at the mouses position into the screen and get information of the object the ray passes through
RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);
if (hit.collider != null && hit.collider.tag == "child") //each child object is tagged as "child"
{
Destroy(hit.collider.gameObject);
}
}
}