public bool NewCamera(string name, int depth) { if (_cameraList.ContainsKey(name)) { return(false); } int layerFound = FindAccessLayer(); if (layerFound < 0) { return(false); } GameObject newObject = new GameObject(name); Camera newCamera = newObject.AddComponent <Camera>(); UiCamera newUiCamera = newObject.AddComponent <UiCamera>(); newObject.AddComponent <PhysicsRaycaster>(); newObject.AddComponent <PostProcessLayer>().volumeLayer = 1 << (_baseLayer + layerFound); newCamera.depth = depth; newCamera.clearFlags = CameraClearFlags.Depth; newCamera.cullingMask = 1 << (_baseLayer + layerFound); _layerSlots[layerFound] = newUiCamera; _cameraList.Add(name, newUiCamera); newUiCamera.Volume = _volumes[2 + layerFound]; return(true); }
private int FindCameraIndex(UiCamera cam) { for (int i = 0; i < 6; i++) { if (_layerSlots[i] == cam) { return(i); } } return(-1); }
public bool DestroyCamera(string name) { if (!_cameraList.ContainsKey(name)) { return(false); } UiCamera uiCamera = _cameraList[name]; int i = FindCameraIndex(uiCamera); if (i < 0) { return(false); } _layerSlots[i] = null; _cameraList.Remove(name); Destroy(uiCamera.gameObject); return(true); }