예제 #1
0
        /// <summary>
        /// 카메라를 변경합니다.
        /// </summary>
        public void ChangeCamera()
        {
            if (cameraMode == null)
            {
                return;
            }

            Camera camera = null;

            switch (cameraMode.type)
            {
            case CameraSelectType.Auto:
            {
                camera = FindMainCameraFromActiveScene();
            }
            break;

            case CameraSelectType.Manual:
            {
                var go = targetObjects.FindTarget(TargetTag.MainCamera, cameraMode.cameraName);
                if (go != null)
                {
                    camera = go.GetComponent <Camera>();
                }
            }
            break;

            case CameraSelectType.InGame:
            {
                camera = GameCamera.instance.targetCamera;
            }
            break;

            default:
            {
                throw new System.NotSupportedException(string.Format("지원하지 않는 타입입니다. ({0})", cameraMode.type));
            }
            }

            /// 카메라가 하나도 없다고?!
            /// 인게임 카메라라도 켜자
            if (camera == null && CameraUtil.GetMainCameraCount() == 0)
            {
                camera = GameCamera.instance.targetCamera;
            }

            if (camera != null)
            {
                CameraUtil.DeactiveMainCameras(camera);
                camera.gameObject.SetActive(true);
            }
        }