示例#1
0
    void UpdateServer()
    {
        switch (m_status)
        {
        case (int)GhostStateID.MAIN:

            m_ghostMain.m_pStateMachine.ChangeState(CGhostState_Main.Instance());
            break;

        case (int)GhostStateID.ATK:

            m_ghostMain.m_pStateMachine.ChangeState(CGhostState_Atk.Instance());
            break;

        case (int)GhostStateID.AVATAR:

            m_ghostMain.m_pStateMachine.ChangeState(CGhostState_Avatar.Instance());
            break;

        case (int)GhostStateID.DASH:

            m_ghostMain.m_pStateMachine.ChangeState(CGhostState_Dash.Instance());
            break;

        case (int)GhostStateID.MOVE:

            m_ghostMain.m_pStateMachine.ChangeState(CGhostState_Move.Instance());
            break;

        case (int)GhostStateID.SLOW:

            m_ghostMain.m_pStateMachine.ChangeState(CGhostState_Slow.Instance());
            break;

        case (int)GhostStateID.STAN:

            m_ghostMain.m_pStateMachine.ChangeState(CGhostState_Stan.Instance());
            break;

        case (int)GhostStateID.WAIT:

            m_ghostMain.m_pStateMachine.ChangeState(CGhostState_Wait.Instance());
            break;
        }
    }
示例#2
0
    /*!  HitCheckCharacter( Collider )
     *!   \details	照らされているかチェック
     *!
     *!   \return	戻り値
     */
    private void HitCheckCharacter()
    {
        /* 処理の軽量化 */
        bool isUpdate = Time.frameCount % UPDATE_FRAME == 0;

        if (!isUpdate)
        {
            return;
        }

        // --- 各オブジェクトのイベント ---
        /* 人 */
        for (int i = 0; i < m_humanList.Count; i++)
        {
            var human = m_humanList[i];
            if (!human.islightIn)
            {
                continue;
            }
            // Debug.Log( m_humanList[i]._instance.name + "のチェック" );
            if (!RayCheck(human._instance.transform))
            {
                //	Debug.Log( human._instance.name + "は照らされていない。" );
                human._instance.LightOn = false;
                m_humanList[i]          = human;
                continue;
            }
            // 人のイベント
            // Debug.Log( human._instance.name + "は照らされている。" );
            human._instance.LightOn = true;
            m_humanList[i]          = human;
        }

        /* ダミーお化け */
        for (int i = 0; i < m_dymmyGhostList.Count; i++)
        {
            var dummy = m_dymmyGhostList[i];
            // Debug.Log( "ダミーお化け\nName:" + dummy._instance.name + "\n光に入っているか:" + dummy.islightIn
            //  + "\n変数:" + m_dymmyGhostList[i]._instance.m_viewStatus );
            if (!dummy.islightIn)
            {
                continue;
            }
            if (!RayCheck(dummy._instance.transform))
            {
                dummy._instance.m_viewStatus = DummyGhost.GHOTS_VIEW_STATUS.INVISIBLE;
                m_dymmyGhostList[i]          = dummy;
                continue;
            }
            dummy._instance.m_viewStatus = DummyGhost.GHOTS_VIEW_STATUS.VISIBLE;
            m_dymmyGhostList[i]          = dummy;
        }

        //* お化け */
        if (!m_ghost.islightIn)
        {
            return;
        }
        if (!m_ghost._instance)
        {
            return;
        }
        if (!RayCheck(m_ghost._instance.transform))
        {
            m_ghost._instance.m_viewStatus = GhostMain.GHOTS_VIEW_STATUS.INVISIBLE;
        }
        else
        {
            m_ghost._instance.m_pStateMachine.ChangeGlobalState(CGhostState_Slow.Instance());
        }
        // お化けのイベント
        // Debug.Log( m_ghost._instance.name + "は照らされている。" );
    }