unity有多个prefab时,随机生成一个prefab

unity有多个prefab时,随机生成一个prefab

Instantiate函数我就不说了,主要是设置生成的prefab的位置、缩放、父对象、旋转等参数。

三个脚本都有这个碰撞功能,就是当碰撞发生时isCollision变为true材质材料,然后在其他脚本中检测到isCollision,如果发生碰撞unity 实例化预制物体,调试。

public class Prefabs : MonoBehaviour {
    private gameManager manager;
	// Use this for initialization
	void Start () {
        manager = gameManager.instance;
    }
	
	// Update is called once per frame
	void Update () {
		
	}
    void OnCollisionEnter(Collision collision)
    {
        manager.isCollision = true;
    }
}

public class gameManager : MonoBehaviour {
    public static gameManager instance;
    public bool isCollision = false;
     void Awake()
    {
        instance = this;
    }
    // Use this for initialization
    void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
        if (isCollision) {
            Debug.Log("和预制体碰撞");
        }
	}
}

这样写,不会输出Debug语句,因为你碰了一个prefab参数变成了trueunity 实例化预制物体,而另外两个还是false。

最好的办法是脚本变为真时添加;