// 歩く void WalkUpdate() { // 生きているか if (!CheckMyLife()) { NowState = AIState.DEAD; return; } // 一定間隔で変身するようにする m_nowTransInterval += Time.deltaTime; if (m_nowTransInterval > m_transInterval) { // 変身させる if (S_Atrans.TransChange()) { m_nowTransInterval = 0f; } } // 一定間隔で移動方向を設定 m_nowMoveTime += Time.deltaTime; if (m_nowMoveTime >= m_searchMoveVecInterval) { m_moveVec = S_Amove.SearchMovevec(m_route[m_routeIndex]); m_nowMoveTime = 0f; } // 敵が見えているか if (FindEnemyFlag) // 敵を見つけているか { if (m_enemyChaseFlag) // 敵を追いかけているか { if (!FightEnemy()) // 敵を見失っていないか { NowState = AIState.WALKSTART; return; } } S_Agun.SelectBullet(m_fightingEnemy.position); } else { if (CheckFindEnemy()) { NowState = AIState.WALKSTART; return; } } // 目的地にたどり着いたか if (CheckWayPoint() && checkpointgoalFlag) { NowState = AIState.WALKGOAL; return; } if (checkpointgoalFlag) { NowState = AIState.WALKGOAL; return; } }