private bool m_IsParalysis = false; // 麻痺しているか(デフォルトはfalse) // Use this for initialization void Start() { m_Rigidbody = GetComponent <Rigidbody>(); m_Agent = GetComponent <NavMeshAgent>(); m_Agent.destination = new Vector3(0.0f, 0.0f, 0.0f); // 追従目標を指定 SetTarget(); m_State = Enemy2State_New.FollowPlayer; }
// Update is called once per frame void Update() { // プレイヤーが合体中・分離中でなければ if (GameManager.Instance.m_PlayMode != PlayMode.Combine && GameManager.Instance.m_PlayMode != PlayMode.Release && GameManager.Instance.m_PlayMode != PlayMode.NoPlay) { // 麻痺していなければ if (!m_IsParalysis) { // プレイヤーに追従中 if (m_State == Enemy2State_New.FollowPlayer) { // プレイヤーが射程内にいれば攻撃 if (IsPlayerInRange()) { m_State = Enemy2State_New.Attack; } } // プレイヤーに攻撃 else if (m_State == Enemy2State_New.Attack) { if (m_AttackCount >= m_AttackInterval) { Attack(); } // プレイヤーが射程内にいなければ、移動を再開 if (!IsPlayerInRange()) { m_State = Enemy2State_New.FollowPlayer; } } } // 一定間隔で追従目標を変更 if (m_ChangeTargetCount >= m_ChangeTargetInterval) { SetTarget(); } // 攻撃カウンター ++m_AttackCount; // 目標変更カウンター ++m_ChangeTargetCount; } // 麻痺カウンター --m_ParalysisCount; // 麻痺時間終了 if (m_ParalysisCount <= 0) { m_IsParalysis = false; } }