private void Start() { manager = FindObjectOfType <CameraMixingManager>(); Collider collider = GetComponent <Collider>(); if (collider != null) { collider.isTrigger = true; } else { Debug.LogError(name + " needs a collider to function!", this); } blendCameras = new BlendCamera[zones.Length]; for (int i = 0; i < blendCameras.Length; i++) { BlendCamera blendCamera = blendCameras[i]; if (zones[i].camera == null) { Debug.LogError("Zone " + i + " needs a virtual camera to function correctly!", this); } else { blendCamera.camera = zones[i].camera; } blendCamera.weight = zones[i].weight; blendCamera.originalParent = blendCamera.camera.transform.parent; blendCameras[i] = blendCamera; } }
public void Add(BlendCamera blendCamera) { blendCamera.camera.transform.SetParent(transform); var x = mixingCamera.ChildCameras; mixingCamera.SetWeight(blendCamera.camera, blendCamera.weight); blendCamera.camera.gameObject.SetActive(true); }
public void Remove(BlendCamera[] blendCameras) { for (int i = 0; i < blendCameras.Length; i++) { BlendCamera blendCamera = blendCameras[i]; blendCamera.camera.transform.SetParent(blendCamera.originalParent); blendCamera.camera.gameObject.SetActive(false); } }
private void OnTriggerExit(Collider other) { float highestWeight = 0f; for (int i = 0; i < blendCameras.Length; i++) { if (blendCameras[i].weight > highestWeight) { exitBlendCamera = blendCameras[i]; highestWeight = blendCameras[i].weight; } } Target = null; }
public void UpdateWeight(BlendCamera blendCamera) { mixingCamera.SetWeight(blendCamera.camera, blendCamera.weight); }
public void Remove(BlendCamera blendCamera) { blendCamera.camera.transform.SetParent(blendCamera.originalParent); blendCamera.camera.gameObject.SetActive(false); }