Exemple #1
0
        public virtual bool OnUpdate()
        {
            switch (m_clearState)
            {
            case ClearEventState.STANBY:
                m_animator.SetBool("Run", true);
                m_clearState = ClearEventState.RUN;
                break;

            case ClearEventState.RUN:
                RunState();
                break;

            case ClearEventState.ANIMETION:
                m_eventAnimatorInfo = m_eventAnimator.GetCurrentAnimatorStateInfo(0);
                if (m_eventAnimatorInfo.normalizedTime > 1.0f)
                {
                    m_clearState = ClearEventState.OPEN;
                }
                break;

            case ClearEventState.OPEN:
                m_door.OpenDoor();
                m_eventAnimator.Play("ANM_ClearEventFade");
                m_clearState = ClearEventState.PLAYERFADE;
                break;

            case ClearEventState.PLAYERFADE:
                m_eventAnimatorInfo = m_eventAnimator.GetCurrentAnimatorStateInfo(0);
                if (m_eventAnimatorInfo.normalizedTime > 1.0f)
                {
                    m_door.EnterCloseDoor();
                    m_clearState = ClearEventState.CLOSE;
                }
                break;

            case ClearEventState.CLOSE:
                if (m_door.isAnimationCloseDoor())
                {
                    m_clearState = ClearEventState.END;
                }
                break;

            case ClearEventState.END:
                break;
            }
            //ここで返されたのがtrueならイベント終了
            if (m_clearState == ClearEventState.END)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Exemple #2
0
        /// <summary>
        /// 初期化
        /// </summary>
        /// <param name="arg_player">プレイヤーの情報</param>
        /// <param name="arg_gimmickObject">ドアの情報</param>
        public virtual void OnStart(Player arg_player, GameObject arg_gimmickObject)
        {
            m_player    = arg_player;
            m_rigidbody = m_player.RigidbodyComponent;
            m_animator  = m_player.AnimatorComponent;

            m_doorObject = arg_gimmickObject;
            m_door       = m_doorObject.GetComponent <Door>();

            m_eventPlayer   = m_doorObject.transform.Find("ClearAnimation").gameObject;
            m_eventAnimator = m_eventPlayer.GetComponent <Animator>();

            m_clearState = ClearEventState.STANBY;
        }
Exemple #3
0
        /// <summary>
        ///プレイヤーの位置調整
        /// </summary>
        private void RunState()
        {
            m_rigidbody.velocity = new Vector3()
            {
                x = 3 * (int)GetPlayerDirection(),
                y = m_rigidbody.velocity.y,
                z = 0
            };

            if (PositionCheck())
            {
                AudioManager.Instance.ReleaseSE("Foot");

                m_rigidbody.velocity = new Vector3()
                {
                    x = 0,
                    y = m_rigidbody.velocity.y,
                    z = 0
                };
                m_player.transform.position = new Vector3()
                {
                    x = m_doorObject.transform.position.x,
                    y = m_player.transform.position.y,
                    z = m_player.transform.position.z
                };

                m_player.Stop(m_currentDirection);
                m_animator.SetBool("Run", false);

                m_player.gameObject.active        = false;
                m_eventAnimator.gameObject.active = true;

                m_eventAnimator.Play("ANM_ClearEvent");
                m_clearState = ClearEventState.ANIMETION;
            }
        }