// Initialize Camera Object & Controller public void createCamera(CameraSort type) { if (m_cameraRoot == null) { if (!Camera.main) { m_cameraRoot = UnityEngine.Object.Instantiate(Resources.Load("Prefabs/CameraControllor"), Vector3.zero, Quaternion.identity) as GameObject; //m_cameraRoot = UnityEngine.Object.Instantiate(AssetBundleLoader.getInstance().loadPrefabSync("Prefab/CameraControllor"), Vector3.zero, Quaternion.identity) as GameObject; m_cameraRoot.name = "CameraControllor"; } else { if (Camera.main.transform.parent.gameObject.name != "CameraControllor") { Debug.LogError("Main Camera 已被CameraController佔用!"); } m_cameraRoot = Camera.main.transform.parent.gameObject; } } initCameraSetting(type); }
private void initCameraSetting(CameraSort type) { //EfficacyDebuger.logConsole("initCameraSetting"); m_cameraType = type; m_backgroundCamera = m_cameraRoot.transform.GetChild(0).GetComponent <Camera>(); m_middleCamera = m_cameraRoot.transform.GetChild(1).GetComponent <Camera>(); m_foregroundCamera = m_cameraRoot.transform.GetChild(2).GetComponent <Camera>(); m_effectCamera = m_cameraRoot.transform.GetChild(3).GetComponent <Camera>(); //if (m_fgCamera == null || m_bgCamera == null || m_middleCamera == null || m_effectCamera == null) // EfficacyDebuger.logError("m_fgCamera and m_bgCamera Null!"); m_controllor = m_cameraRoot.GetComponent <CameraControl>(); //initRegister(); switch (m_cameraType) { //case CameraSort.ORTHOGRAPHIC_WORLDMAP: // m_fgCamera.clearFlags = CameraClearFlags.Depth; // m_fgCamera.backgroundColor = new Color(0.3f, 0.3f, 0.3f, 0.02f); // m_fgCamera.cullingMask = 1 << LayerMask.NameToLayer(GlobalTypeDefine.sm_foregroundLayerName) | 1 << LayerMask.NameToLayer(GlobalTypeDefine.sm_TransportUnitLayerName); // m_fgCamera.depth = 2; // m_fgCamera.fieldOfView = 30f; // m_fgCamera.nearClipPlane = -100.0f; // m_fgCamera.farClipPlane = 1000.0f; // m_controllor.CameraMode = CameraControl.CameraModeType.ORTHOGRAPHIC; // m_fgCamera.gameObject.SetActive(true); // //m_bgCamera.gameObject.SetActive(true); // //m_middleCamera.gameObject.SetActive(false); // m_controllor.StartPosition = new Vector3(275, 66, 185); // m_controllor.StartRotation = new Vector3(45f, 225f, 0); // m_controllor.MinMoveSpeed = 30; // m_controllor.MoveSpeedRatio = 1; // m_controllor.SmoothOffset = 5; // m_controllor.MinFocusSpeed = 3; // m_controllor.FocusSpeedRatio = 5; // m_controllor.MinViewSize = 2.5f; // m_controllor.MaxViewSize = 6f; // m_controllor.ResetSpeed = 0.01f; // m_controllor.LookToPositionSpeed = 1f; // m_controllor.IsRestrictMoveRange = true; // m_controllor.MinRestrictRangeOffset = Vector3.zero; // m_controllor.MaxRestrictRangeOffset = Vector3.zero; // m_controllor.MinRestrictLineHorizontalOffset = 10; // m_controllor.MinRestrictLineVerticalOffset = 10; // m_controllor.MaxRestrictLineHorizontalOffset = 10; // m_controllor.MaxRestrictLineVerticalOffset = 10; // break; //case CameraSort.ORTHOGRAPHIC_CITYMAP: //case CameraSort.ORTHOGRAPHIC_CITYMAP_LIMIT: // m_controllor.IsCameraManagerCreate = true; // m_controllor.IsRestrictMoveRange = false; // m_controllor.StartPosition = new Vector3(-20.0f, 6.0f, 50.0f); // m_controllor.StartRotation = new Vector3(45.0f, 225.0f, 0.0f); // m_controllor.CameraMode = CameraControl.CameraModeType.ORTHOGRAPHIC; // m_controllor.SmoothOffset = 0.0f; // m_controllor.ResetSpeed = 0.0f; // m_controllor.MinMoveSpeed = 50; // m_controllor.MoveSpeedRatio = 1; // m_controllor.MinFocusSpeed = 20; // m_controllor.FocusSpeedRatio = 1; // m_controllor.MoveToPositionSpeed = 60; // m_controllor.MinViewSize = 25.0f; // m_controllor.MaxViewSize = 45.0f; // m_controllor.IsRestrictMoveRange = true; // m_controllor.MinRestrictRangeOffset = new Vector3(90, 2, 50f); // m_controllor.MaxRestrictRangeOffset = new Vector3(87, 2, 47.5f); // m_fgCamera.clearFlags = CameraClearFlags.Depth; // m_fgCamera.backgroundColor = new Color(0.3f, 0.3f, 0.3f, 0.02f); // //m_fgCamera.cullingMask = 1 << LayerMask.NameToLayer(GlobalTypeDefine.sm_defaultLayerName) | 1 << LayerMask.NameToLayer(GlobalTypeDefine.sm_IgnoreRayCastLayerName) | 1 << LayerMask.NameToLayer(GlobalTypeDefine.sm_foregroundLayerName);//311 // m_fgCamera.depth = 1; // m_fgCamera.orthographic = true; // m_fgCamera.orthographicSize = 25.0f; // m_fgCamera.nearClipPlane = -1000f; // m_fgCamera.farClipPlane = 1000.0f; // break; case CameraSort.PERSPECTIVE_CITYMAP: case CameraSort.PERSPECTIVE_CITYMAP_LIMIT: m_controllor.StartPosition = new Vector3(108.4f, 21.6f, 62.8f); m_controllor.StartRotation = new Vector3(28.8f, 225.0f, 0.0f); m_controllor.CameraMode = CameraControl.CameraModeType.PERSPECTIVE; m_controllor.SmoothOffset = 3f; m_controllor.ResetSpeed = 0.0f; m_controllor.MinMoveSpeed = 20; m_controllor.MoveSpeedRatio = 1; m_controllor.MinFocusSpeed = 10; m_controllor.FocusSpeedRatio = 1; m_controllor.MoveToPositionSpeed = 60; m_controllor.MinViewSize = 25.0f; m_controllor.MaxViewSize = 45.0f; m_controllor.IsRestrictMoveRange = true; m_controllor.MinRestrictRangeOffset = new Vector3(91.5f, 2f, 37f); m_controllor.MaxRestrictRangeOffset = new Vector3(91.5f, 2f, 37f); m_controllor.MinRestrictLineVerticalOffset = 75f; m_controllor.MinRestrictLineHorizontalOffset = 75f; m_controllor.MaxRestrictLineHorizontalOffset = 80f; m_controllor.MaxRestrictLineVerticalOffset = 80f; m_backgroundCamera.clearFlags = CameraClearFlags.Skybox; m_backgroundCamera.backgroundColor = new Color(0.3f, 0.3f, 0.3f, 0.02f); m_backgroundCamera.cullingMask = 1 << LayerMask.NameToLayer(GlobalTypeDefine.sm_defaultLayerName) | 1 << LayerMask.NameToLayer(GlobalTypeDefine.sm_IgnoreRayCastLayerName) | 1 << LayerMask.NameToLayer(GlobalTypeDefine.sm_foregroundLayerName); m_backgroundCamera.depth = -1; m_backgroundCamera.fieldOfView = 55.0f; m_backgroundCamera.nearClipPlane = 0.01f; m_backgroundCamera.farClipPlane = 1000.0f; m_backgroundCamera.transparencySortMode = TransparencySortMode.Orthographic; m_middleCamera.clearFlags = CameraClearFlags.Depth; m_middleCamera.backgroundColor = new Color(0.3f, 0.3f, 0.3f, 0.02f); m_middleCamera.cullingMask = 1 << LayerMask.NameToLayer(GlobalTypeDefine.sm_middleLayerName); m_middleCamera.depth = 0; m_middleCamera.fieldOfView = 55.0f; m_middleCamera.nearClipPlane = 0.01f; m_middleCamera.farClipPlane = 1000.0f; m_middleCamera.transparencySortMode = TransparencySortMode.Orthographic; m_foregroundCamera.clearFlags = CameraClearFlags.Depth; m_foregroundCamera.backgroundColor = new Color(0.3f, 0.3f, 0.3f, 0.02f); m_foregroundCamera.cullingMask = 1 << LayerMask.NameToLayer(GlobalTypeDefine.sm_backgroundLayerName);//311 m_foregroundCamera.depth = 1; m_foregroundCamera.fieldOfView = 55.0f; m_foregroundCamera.nearClipPlane = 0.01f; m_foregroundCamera.farClipPlane = 1000.0f; m_foregroundCamera.transparencySortMode = TransparencySortMode.Orthographic; m_effectCamera.clearFlags = CameraClearFlags.Depth; m_effectCamera.backgroundColor = new Color(0.3f, 0.3f, 0.3f, 0.02f); m_effectCamera.cullingMask = 1 << LayerMask.NameToLayer(GlobalTypeDefine.sm_effectLayerName); m_effectCamera.depth = 2; m_effectCamera.fieldOfView = 55.0f; m_effectCamera.nearClipPlane = 0.01f; m_effectCamera.farClipPlane = 1000.0f; m_effectCamera.transparencySortMode = TransparencySortMode.Orthographic; break; //case CameraSort.CAMPAIGN: // m_controllor.IsRestrictMoveRange = false; // m_controllor.StartPosition = new Vector3(10.6074f, 25.8109f, 81.4117f); // m_controllor.StartRotation = new Vector3(35.0f, 200.0f, 0.0f); // m_controllor.CameraMode = CameraControl.CameraModeType.PERSPECTIVE; // m_controllor.SmoothOffset = 3f; // m_controllor.ResetSpeed = 0.0f; // m_controllor.MinMoveSpeed = 20; // m_controllor.MoveSpeedRatio = 1; // m_controllor.MinFocusSpeed = 1; // m_controllor.MoveToPositionSpeed = 60; // m_controllor.FocusSpeedRatio = 1; // m_controllor.MinViewSize = 25.0f; // m_controllor.MaxViewSize = 45.0f; // m_controllor.IsRestrictMoveRange = true; // m_controllor.MinRestrictRangeOffset = new Vector3(-13, 0, 34.8f); // m_controllor.MaxRestrictRangeOffset = new Vector3(-16, 0, 28.5f); // m_controllor.MinRestrictLineHorizontalOffset = 18.7f; // m_controllor.MinRestrictLineVerticalOffset = 23f; // m_controllor.MaxRestrictLineHorizontalOffset = 14f; // m_controllor.MaxRestrictLineVerticalOffset = 18.5f; // m_fgCamera.clearFlags = CameraClearFlags.Depth; // m_fgCamera.backgroundColor = new Color(0.3f, 0.3f, 0.3f, 0.02f); // m_fgCamera.cullingMask = 1 << LayerMask.NameToLayer(GlobalTypeDefine.sm_defaultLayerName) | 1 << LayerMask.NameToLayer(GlobalTypeDefine.sm_foregroundLayerName);//311 // m_fgCamera.depth = 1; // m_fgCamera.fieldOfView = 55.0f; // m_fgCamera.nearClipPlane = 0.01f; // m_fgCamera.farClipPlane = 1000.0f; // m_controllor.changeScreenSize(); // break; } if (m_cameraType == CameraSort.ORTHOGRAPHIC_CITYMAP || m_cameraType == CameraSort.PERSPECTIVE_CITYMAP) { m_controllor.MinViewSize = 1; m_controllor.MaxViewSize = 1000; } else if (m_cameraType == CameraSort.ORTHOGRAPHIC_CITYMAP_LIMIT) { m_controllor.MinViewSize = 10.0f; m_controllor.MaxViewSize = 18.0f; } else if (m_cameraType == CameraSort.PERSPECTIVE_CITYMAP_LIMIT) { m_controllor.MinViewSize = 25.0f; m_controllor.MaxViewSize = 45.0f; } }