using AX.MessageSystem; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class QuadCamsManager : MonoBehaviour { private static QuadCamsManager instance; public static QuadCamsManager Instance { get { return instance; } } void Awake() { instance = this; } public GameObject quadCamPre; // Use this for initialization void Start () { quadCamPre = Resources.Load("4GTransfer/QuadCam") as GameObject; //MessageDispatcher.AddListener("QuadrupleMode", DeleteAllCams); 测试:暂时不需要删除所有四分屏 //MessageDispatcher.AddListener("QuadrupleMode", DisableAllCams); } /// /// 生成新的四分相机 /// /// public void InstantiateCamera(CloneGameObjInfo info,RenderTexture texture) { GameObject cam = Instantiate(quadCamPre, transform); cam.name = "QuadCam-" + cam.transform.GetSiblingIndex().ToString(); cam.GetComponent().targetTexture = texture; cam.GetComponent().SetTarget(info); } /// /// 关闭四分屏模式,删除所有相机 /// /// void DeleteAllCams(IMessage obj) { var isQuad = (bool)obj.Data; if (isQuad == false) //如果关闭四分屏模式,删除所有相机 { for(int i = 0; i < transform.childCount; i++) { Destroy(transform.GetChild(i).gameObject); } } } }