コード例 #1
0
        private void Update()
        {
            if (Input.GetKeyDown(KeyCode.X))
            {
                Debug.Log("x");

                if (ActiveCamera == BoardGameCamera)
                {
                    StartCoroutine(SwichingCamera(BattleGameCamera));
                }
                else
                {
                    StartCoroutine(SwichingCamera(BoardGameCamera));
                }
            }
            //if (Input.GetKeyDown(KeyCode.C))
            //{
            //    Debug.Log("c");
            //    ZoomInOut(ZoomValue);//ActiveCamera,
            //}

            //새로운 상태가 있으면 바꿔준다
            if (cameraState != newCameraState)
            {
                cameraState = newCameraState;
            }
        }
コード例 #2
0
        private void ChangeState(CameraStateType cameraStateType)
        {
            switch (cameraStateType)
            {
            case CameraStateType.Idle:
                currentState = new CameraNomalState(animator);
                break;

            case CameraStateType.Damage:
                currentState = new CameraShakeState(animator);
                break;

            case CameraStateType.Skill_1:
                currentState = new CameraSkillActionState(animator);
                break;

            case CameraStateType.Skill_2:
                currentState = new CameraSkillActionState(animator);
                break;

            default:
                currentState = new CameraNomalState(animator);
                break;
            }
        }
コード例 #3
0
    public void SetFollowCameraState(GameObject target)
    {
        SimulatorManager.Instance?.UIManager?.ResetCinematicAlpha();
        Debug.Assert(target != null);
        transform.SetParent(SimulatorManager.Instance?.CameraManager.transform);
        CurrentCameraState = CameraStateType.Follow;
        targetObject       = target.transform;

        var vehicleActions = target.GetComponent <VehicleActions>();

        if (vehicleActions != null)
        {
            BoundsY         = vehicleActions.Bounds.size.y;
            BoundsZ         = vehicleActions.Bounds.size.z;
            BoundsZ         = BoundsZ < 1f ? 1f : BoundsZ;
            offset          = new Vector3(0f, BoundsY, -BoundsZ);
            cinematicOffset = new Vector3(0f, BoundsY * 3f, 0f);
        }
        transform.position = targetObject.position;
        transform.rotation = targetObject.rotation;
        thisCamera.transform.localRotation = Quaternion.identity;
        thisCamera.transform.localPosition = Vector3.zero;
        thisCamera.transform.localPosition = thisCamera.transform.InverseTransformPoint(targetObject.position) + offset;
        defaultFollow  = true;
        targetTiltFree = transform.eulerAngles.x;
        targetLookFree = transform.eulerAngles.y;
        SimulatorManager.Instance.UIManager?.SetCameraButtonState();
    }
コード例 #4
0
 public void SetCameraStateType(CameraStateType cameraStateType)
 {
     this.cameraStateType = cameraStateType;
     if (cameraStateType == CameraStateType.Orbit)
     {
         orbitState.Init(transform);
     }
 }
コード例 #5
0
 public void SetCinematicCameraState()
 {
     SimulatorManager.Instance.UIManager.SetEnvironmentButton(true);
     CurrentCameraState = CameraStateType.Cinematic;
     targetObject       = SimulatorManager.Instance.AgentManager.CurrentActiveAgent.transform;
     thisCamera.transform.localRotation = Quaternion.identity;
     thisCamera.transform.localPosition = Vector3.zero;
 }
コード例 #6
0
        //float ZoomValue;
        //Vector3 vector3; //배틀 카메라를 사용할때 비어있는 v3를 전달하기위해 선언함

        public void InitializeCamera()
        {
            cloudAnimator    = GameObject.FindWithTag("UICamera").GetComponentInChildren <Animator>();
            BoardGameCamera  = GameObject.FindWithTag("BoardCamera").GetComponent <GameCamera>();
            BattleGameCamera = GameObject.FindWithTag("BattleCamera").GetComponent <GameCamera>();
            //playerTransform = GameObject.FindWithTag(GlobalVariables.TAG_PLAYER).transform;
            ActiveCamera = BoardGameCamera;
            cameraState  = CameraStateType.Idle;
            //vector3 = new Vector3();
        }
コード例 #7
0
 public void SetFreeCameraState()
 {
     CurrentCameraState = CameraStateType.Free;
     targetObject       = null;
     transform.position = thisCamera.transform.position;
     transform.rotation = thisCamera.transform.rotation;
     thisCamera.transform.localRotation = Quaternion.identity;
     thisCamera.transform.localPosition = Vector3.zero;
     targetTiltFree = transform.eulerAngles.x;
     targetLookFree = transform.eulerAngles.y;
 }
コード例 #8
0
 public void SetFreeCameraState()
 {
     CurrentCameraState = CameraStateType.Free;
     targetObject       = null;
     transform.position = thisCamera.transform.position;
     transform.rotation = thisCamera.transform.rotation;
     thisCamera.transform.localRotation = Quaternion.identity;
     thisCamera.transform.localPosition = Vector3.zero;
     targetTiltFree = transform.eulerAngles.x;
     targetLookFree = transform.eulerAngles.y;
     SimulatorManager.Instance.UIManager?.SetCameraButtonState();
 }
コード例 #9
0
 public void SetCinematicCameraState()
 {
     SimulatorManager.Instance?.UIManager?.FadeOutIn(1f);
     CurrentCameraState = CameraStateType.Cinematic;
     targetObject       = SimulatorManager.Instance.AgentManager.CurrentActiveAgent.transform;
     transform.position = targetObject.position + offset;
     thisCamera.transform.localRotation = Quaternion.identity;
     thisCamera.transform.localPosition = Vector3.zero;
     elapsedCinematicTime      = 0f;
     cinematicCameraTransforms = targetObject.GetComponent <VehicleActions>().CinematicCameraTransforms;
     RandomCinematicState();
     SimulatorManager.Instance.UIManager?.SetCameraButtonState();
 }
コード例 #10
0
 public void SetFollowCameraState(GameObject target)
 {
     Debug.Assert(target != null);
     CurrentCameraState = CameraStateType.Follow;
     targetObject       = target.transform;
     transform.position = targetObject.position;
     transform.rotation = targetObject.rotation;
     thisCamera.transform.localRotation = Quaternion.identity;
     thisCamera.transform.localPosition = Vector3.zero;
     thisCamera.transform.localPosition = thisCamera.transform.InverseTransformPoint(targetObject.position) + offset;
     defaultFollow  = true;
     targetTiltFree = transform.eulerAngles.x;
     targetLookFree = transform.eulerAngles.y;
 }
コード例 #11
0
 public void SetFreeCameraState(Vector3 pos, Vector3 rot)
 {
     SimulatorManager.Instance?.UIManager?.ResetCinematicAlpha();
     transform.SetParent(SimulatorManager.Instance?.CameraManager.transform);
     CurrentCameraState = CameraStateType.Free;
     targetObject       = null;
     transform.position = pos;
     transform.rotation = Quaternion.Euler(rot);
     thisCamera.transform.localRotation = Quaternion.identity;
     thisCamera.transform.localPosition = Vector3.zero;
     targetTiltFree = transform.eulerAngles.x;
     targetLookFree = transform.eulerAngles.y;
     SimulatorManager.Instance.UIManager?.SetCameraButtonState();
 }
コード例 #12
0
 public void SetFollowCameraState(GameObject target)
 {
     SimulatorManager.Instance.UIManager.SetEnvironmentButton(false);
     Debug.Assert(target != null);
     CurrentCameraState = CameraStateType.Follow;
     targetObject       = target.transform;
     transform.position = targetObject.position;
     transform.rotation = targetObject.rotation;
     thisCamera.transform.localRotation = Quaternion.identity;
     thisCamera.transform.localPosition = Vector3.zero;
     thisCamera.transform.localPosition = thisCamera.transform.InverseTransformPoint(targetObject.position) + offset;
     defaultFollow  = true;
     targetTiltFree = transform.eulerAngles.x;
     targetLookFree = transform.eulerAngles.y;
     SimulatorManager.Instance.UIManager?.SetCameraButtonState();
 }
コード例 #13
0
 public void SetDriverViewCameraState()
 {
     SimulatorManager.Instance?.UIManager?.ResetCinematicAlpha();
     CurrentCameraState        = CameraStateType.Driver;
     targetObject              = SimulatorManager.Instance.AgentManager.CurrentActiveAgent.transform;
     DriverViewCameraTransform = targetObject.GetComponent <IAgentController>().DriverViewTransform;
     if (DriverViewCameraTransform != null)
     {
         transform.SetParent(DriverViewCameraTransform);
         transform.localPosition            = Vector3.zero;
         transform.localRotation            = Quaternion.identity;
         thisCamera.transform.localRotation = Quaternion.identity;
         thisCamera.transform.localPosition = Vector3.zero;
     }
     SimulatorManager.Instance.UIManager?.SetCameraButtonState();
 }
コード例 #14
0
    private void ToggleFreeCinematicState()
    {
        CurrentCameraState = CurrentCameraState == CameraStateType.Cinematic ? CameraStateType.Free : CameraStateType.Cinematic;
        switch (CurrentCameraState)
        {
        case CameraStateType.Free:
            SetFreeCameraState();
            break;

        case CameraStateType.Cinematic:
            SetCinematicCameraState();
            break;

        default:
            break;
        }
    }
コード例 #15
0
 public override void Moving(Vector3 vector3, CameraStateType newCameraStateType)
 {
     if (cameraStateType != newCameraStateType)
     {
         ChangeState(newCameraStateType);
         currentState.CameraBehavior();
     }
     if (vector3 == null)
     {
         Debug.Log("타겟이 없어서 타겟을 찾는다");
         return;
     }
     else
     {
         Vector3 newPos = vector3 + cameraOffset;
         cameraObject.transform.position = Vector3.Slerp(cameraObject.transform.position, newPos, smooth);
     }
 }
コード例 #16
0
ファイル: CameraManager.cs プロジェクト: lemketron/simulator
    /// <summary>
    /// API command to set camera state
    /// </summary>
    public void SetCameraState(CameraStateType state)
    {
        switch (state)
        {
        case CameraStateType.Free:
            CameraController.SetFreeCameraState();
            break;

        case CameraStateType.Follow:
            CameraController.SetFollowCameraState(SimulatorManager.Instance.AgentManager.CurrentActiveAgent);
            break;

        case CameraStateType.Cinematic:
            CameraController.SetCinematicCameraState();
            break;

        case CameraStateType.Driver:
            CameraController.SetDriverViewCameraState();
            break;
        }
    }
コード例 #17
0
 public abstract void Moving(Vector3 vector3, CameraStateType cameraState);
コード例 #18
0
 /// <summary>
 /// Player에서 카메라의 상태를 변경함
 /// </summary>
 /// <param name="cameraState"></param>
 public void ChangeState(CameraStateType cameraStateType)
 {
     cameraState = cameraStateType;
 }
コード例 #19
0
ファイル: BattleCamera.cs プロジェクト: DeaWonChoi/MyProject
 public override CameraMoving CameraMoving(Vector3 vector3, CameraStateType cameraState)
 {
     cameraMoving.Moving(vector3, cameraState);
     return(cameraMoving);
 }
コード例 #20
0
 public void MovingCamera(Vector3 vector3, CameraStateType cameraState)
 {
     abstractCamera.CameraMoving(vector3, cameraState);
 }
コード例 #21
0
 bool Register(CameraState state, CameraStateType key)
 {
     return(Register(state, (int)key));
 }
コード例 #22
0
 public void RequestCameraState(CameraStateType stateType)
 {
     _stateMachine.Dispatch((int)stateType);
 }
コード例 #23
0
 protected void Dispatch(CameraStateType key)
 {
     base.Dispatch((int)key);
 }
コード例 #24
0
 public void IncrementCameraState()
 {
     CurrentCameraState = (int)CurrentCameraState == System.Enum.GetValues(typeof(CameraStateType)).Length - 1 ? CameraStateType.Free : CurrentCameraState + 1;
 }
コード例 #25
0
 public override void Moving(Vector3 vector3, CameraStateType cameraState)
 {
     cameraObject.transform.Translate(new Vector3(vector3.x, 0, vector3.y), Space.World);
 }