/// <summary> /// MonoBehaviour 개체를 초기화합니다. /// </summary> void Start() { /** * // 예외 메시지 리스트를 생성합니다. * List<string> exceptionList = new List<string>(); * * // 빈 필드가 존재하는 경우 예외 메시지를 추가합니다. * if (_stageManager == null) * exceptionList.Add("Map.StageManager == null"); * * // 예외 메시지가 하나 이상 존재하는 경우 예외를 발생하고 중지합니다. * if (exceptionList.Count > 0) * { * foreach (string msg in exceptionList) * { * Handy.Log("DataBase Error: {0}", msg); * } * throw new Exception("데이터베이스 필드 정의 부족"); * } */ // 필드를 초기화합니다. _stageManager = StageManager1P.Instance; _cameraZoneParent = GetComponentInChildren <CameraZoneParent>(); }
/// <summary> /// MonoBehaviour 개체를 초기화 합니다. /// </summary> protected virtual void Start() { // _database = DataBase.Instance; _stageManager = StageManager.Instance; _camera = Camera.main; _camZ = _camera.transform.position.z; _cameraZoneParent = CameraZoneParent.Instance; _cameraZoneBorderParent = CameraZoneBorderParent.Instance; _map = _database.Map; _player = _stageManager.MainPlayer; // 카메라 관련 필드를 초기화합니다. { // 카메라 존 집합을 초기화합니다. CameraZone[] cameraZones = _cameraZoneParent.GetComponentsInChildren <CameraZone>(); _cameraZones = new CameraZone[cameraZones.Length]; foreach (CameraZone cameraZone in cameraZones) { // 음이 아닌 카메라 존 ID의 경우 집합에 추가합니다. int camZoneID = cameraZone._cameraZoneID; if (camZoneID >= 0) { _cameraZones[cameraZone._cameraZoneID] = cameraZone; } } CameraZoneBorder[] borders = _cameraZoneBorderParent.GetComponentsInChildren <CameraZoneBorder>(); foreach (CameraZoneBorder border in borders) { // 음이 아닌 식별자들에 대해서만 처리합니다. if (border._fromID >= 0 && border._toID >= 0) { border._from = _cameraZones[border._fromID]; border._to = _cameraZones[border._toID]; } } // 시작 카메라 존을 맞춥니다. /// _startCameraZone = _cameraZones[0]; _startCameraZone = _stageManager.GetCheckpointCameraZone (_database.GameManager.SpawnPositionIndex); if (_startCameraZone == null) { throw new Exception("시작 카메라 존이 설정되지 않았습니다."); } /// _currentCameraZone = _startCameraZone; UpdateCameraZone(_startCameraZone, false); } // 카메라 뷰 박스를 초기화합니다. InitializeCameraViewBox(); }