OnMouseDown()和Collision不适用于在另一个游戏对象脚本中创建的游戏对象

时间:2017-07-06 17:09:05

标签: unity3d unity5

我创建了一个游戏对象(Brick)并添加了一个脚本(BrickScript)。在此脚本中,如果满足某个条件,我会创建一个Window游戏对象。请参阅以下代码:

if (hasWindow) {

    if (window == null) {
        window = (GameObject)Instantiate (Resources.Load ("Prefabs/OtherPrefabs/Window"), new Vector3 (transform.position.x + 0.5 * gameObject.GetComponent<SpriteRenderer> ().bounds.size.x, transform.position.y + 0.5f*gameObject.GetComponent<SpriteRenderer>().bounds.size.y, transform.position.z), Quaternion.Identity));
        window.name = gameObject.name + "Window";
    }
}

Brickwindow游戏对象实际上重叠了一点。我意识到当hasWindow = true(创建窗口)时,下面代码中的条件不满足,而其他游戏对象不会与Brick发生冲突。但是当hasWindow = false(未创建window)时,一切似乎都运行良好。我该如何解决这个问题?

void OnMouseDown    ()  {

    if (Input.GetMouseButtonDown(0)) {

        Debug.Log ("touch down");
        hasBeenTouched = true;
    }
}

0 个答案:

没有答案