void custom_nav_fuc() { switch (self_state) { case Self_State_Enmu.idle: { } break; case Self_State_Enmu.move: { navMeshAgent.SetDestination(enemy.transform.position); if (Vector3.Distance(enemy.transform.position, self.position) < 2f) { self_state = Self_State_Enmu.attack; self_combat_Coroutine = Timer.Timer_IEnumerator(5f, custom_self_combat); StartCoroutine(self_combat_Coroutine); } } break; case Self_State_Enmu.attack: { if (Vector3.Distance(enemy.transform.position, self.position) >= 2f) { self_state = Self_State_Enmu.move; StopCoroutine(self_combat_Coroutine); } } break; default: { } break; } }
// Use this for initialization void Start() { self_state = Self_State_Enmu.move; animator = GetComponent<Animator>(); self = GetComponent<Transform>(); rigidbody = GetComponent<Rigidbody>(); rigidbody.mass = 3.0f; //rigidbody.constraints = RigidbodyConstraints.FreezeRotation; bones = GetComponentsInChildren<Transform>() as Transform[]; camRot = self.rotation; foreach (Transform t in bones) { if (t.GetComponent<Rigidbody>() && t.GetComponent<Rigidbody>() != rigidbody) t.GetComponent<Rigidbody>().isKinematic = true; if (t.GetComponent<Collider>() && t.GetComponent<Collider>() != self.GetComponent<Collider>()) t.GetComponent<Collider>().isTrigger = true; } if (headBone == null) { foreach (Transform t in bones) { if (t.name == "head") headBone = t; } } if (weapons.sword_Hand) weapons.sword_Hand.GetComponent<Renderer>().enabled = false; if (weapons.sword_Holster) weapons.sword_Holster.GetComponent<Renderer>().enabled = true; // On if (weapons.bow_Hand) weapons.bow_Hand.GetComponent<Renderer>().enabled = false; if (weapons.bow_Holster) weapons.bow_Holster.GetComponent<Renderer>().enabled = false; if (weapons.bow_Quiver) weapons.bow_Quiver.GetComponent<Renderer>().enabled = false; if (weapons.rifle_Hand) weapons.rifle_Hand.GetComponent<Renderer>().enabled = false; if (weapons.rifle_Holster) weapons.rifle_Holster.GetComponent<Renderer>().enabled = false; if (weapons.pistol_Hand) weapons.pistol_Hand.GetComponent<Renderer>().enabled = false; if (weapons.pistol_Holster) weapons.pistol_Holster.GetComponent<Renderer>().enabled = false; self_attack_parameter = new Attack_Parameter(); animator.SetLayerWeight(1, 1f); navMeshAgent = transform.parent.GetComponent<NavMeshAgent>(); enemy = GameObject.Find("hero"); animator = GetComponent<Animator>(); IEnumerator custom_nav_Coroutine = Timer.Timer_IEnumerator(0.5f, custom_nav_fuc); StartCoroutine(custom_nav_Coroutine); }