override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { if (_enemy == null) { return; } if (_enemy.GetTarget() == null) { _enemy.FindNearestEnemy(); return; } _enemy.RotateToTarget(animator.transform, _enemy.GetTarget()); if (Time.time >= _nextTimeToFire) { _nextTimeToFire = Time.time + 1f / _enemy.GetFireRate(); _enemy.Shoot(); } if (Vector3.Distance(_enemy.GetTarget().transform.position, animator.transform.position) <= _enemy.GetPanicDistance()) { _enemy.Follow(-_enemy.GetSpeed(), _enemy.GetTarget()); } else if (Vector3.Distance(_enemy.GetTarget().transform.position, animator.transform.position) > _enemy.GetPanicDistance()) { _enemy.GetAgent().enabled = true; animator.SetBool("Panic", false); } }
override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { if (_bot == null) { return; } if (_bot.GetTarget() == null) { _bot.FindNearestEnemy(); } if (_bot.GetMainTarget() != null) { _bot.GetAgent()?.SetDestination(_bot.GetMainTarget().transform.position); if (_bot.GetTarget() == null) { _bot.RotateToTarget(animator.transform, _bot.GetMainTarget()); } else { _bot.RotateToTarget(animator.transform, _bot.GetTarget()); } if (_bot.GetTarget() != null && Time.time >= _nextTimeToFire && _bot.CanShoot()) { _nextTimeToFire = Time.time + 1f / _bot.GetFireRate(); _bot.Shoot(); } } if (Input.GetKeyDown(KeyCode.R)) { animator.SetBool("IsRushing", false); } }
// OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { if (_enemy == null) { return; } if (_enemy.GetTarget() == null) { _enemy.FindNearestEnemy(); return; } _enemy.RotateToTarget(animator.transform, _enemy.GetTarget()); if ((Vector3.Distance(_enemy.GetTarget().transform.position, animator.transform.position) > _enemy.GetRange() || !_enemy.CanShoot()) && _enemy.GetAgent().enabled) { if (_enemy.GetAgent() != null) { _enemy.GetAgent().speed = _enemy.GetSpeed(); } _enemy.GetAgent()?.SetDestination(_enemy.GetTarget().transform.position); } else { animator.SetBool("InRange", true); } }
// OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { if (owner.distancefromTarget() > owner.targetdistance) { animator.SetTrigger("Patrol"); // animator.SetTrigger("Chase"); } var target = (Vector3)owner.GetTarget().position; var currentpos = (Vector3)owner.transform.position; Debug.DrawLine(currentpos, target, Color.red); // Vector2 targetposition= Vector2.MoveTowards(currentpos, target, 1 * Time.deltaTime); Vector3 dirFromAtoB = (target - currentpos).normalized; Debug.Log(owner.name + " speed=" + owner.GetSpeed().GetValue()); float isfacing = Vector3.Dot(dirFromAtoB, owner.transform.right); Vector3 targetposition = currentpos + ((dirFromAtoB * .1f));// *Time.deltaTime); targetposition.y = startpos.y; Debug.Log(owner.name + ":is facing val= " + isfacing); if (isfacing < 0) { owner.transform.Rotate(0, 180, 0); } targetposition.z = currentpos.z; owner.transform.position = targetposition; }
override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { if (_bot == null) { return; } if (_bot.GetTarget() == null) { _bot.FindNearestEnemy(); } if (_bot.GetPlayer() != null) { if (Vector3.Distance(_bot.GetPlayer().transform.position, animator.transform.position) > 7) { _bot.GetAgent().SetDestination(_bot.GetPlayer().transform.position); } else { _bot.GetAgent().SetDestination(animator.transform.position); } } if (_bot.GetTarget() != null) { _bot.RotateToTarget(animator.transform, _bot.GetTarget()); if (Time.time >= _nextTimeToFire && _bot.CanShoot()) { _nextTimeToFire = Time.time + 1f / _bot.GetFireRate(); _bot.Shoot(); } } if (Input.GetKeyDown(KeyCode.Space)) { if (_bot.GetPlayer() != null) { _bot.GetAgent().SetDestination(_bot.GetPlayer().transform.position); } animator.SetBool("IsFollowing", false); } }
// OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { if (_enemy == null) { return; } _enemy.FindNearestEnemy(); if (_enemy.GetTarget() != null && _enemy.GetRange() != 0) { animator.SetBool("IsFollowing", true); } }
override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { if (_bot == null) { return; } if (Input.GetKeyDown(KeyCode.Space)) { _bot.FindNearestEnemy(); animator.SetBool("IsFollowing", true); } else if (Input.GetKeyDown(KeyCode.R)) { _bot.FindNearestEnemy(); animator.SetBool("IsRushing", true); } else if (Input.GetKeyDown(KeyCode.P)) { _bot.FindNearestEnemy(); animator.SetBool("IsPatroling", true); } if (_bot.GetTarget() == null) { _bot.FindNearestEnemy(); } if (_bot.GetTarget() != null) { _bot.RotateToTarget(animator.transform, _bot.GetTarget()); if (Time.time >= _nextTimeToFire && _bot.CanShoot()) { _nextTimeToFire = Time.time + 1f / _bot.GetFireRate(); _bot.Shoot(); } } }
override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { if (_bot == null) { return; } if (_bot.GetTarget() == null) { _bot.FindNearestEnemy(); } _bot.GetAgent()?.SetDestination(_curSpot); if (Vector3.Distance(animator.transform.position, _curSpot) < 0.5f || waitTime < 0) { _curSpot = _spots[Random.Range(0, _spots.Length - 1)]; waitTime = 2; } waitTime -= Time.deltaTime; if (_bot.GetTarget() != null) { _bot.RotateToTarget(animator.transform, _bot.GetTarget()); if (Time.time >= _nextTimeToFire && _bot.CanShoot()) { _nextTimeToFire = Time.time + 1f / _bot.GetFireRate(); _bot.Shoot(); } } if (Input.GetKeyDown(KeyCode.P)) { if (_bot.GetPlayer() != null) { _bot.GetAgent().SetDestination(_bot.GetPlayer().transform.position); } animator.SetBool("IsPatroling", false); } }
void OnCollisionEnter(Collision collision) { AI1 aiCharacter = collision.gameObject.GetComponent <AI1>(); Enemy enemy = collision.gameObject.GetComponent <Enemy>(); if (aiCharacter && aiCharacter.GetTarget() == true && gameObject.tag == "F1") // if flag 1 hit by ai, assign flag to ai character. { transform.parent = aiCharacter.transform; transform.position = new Vector3(aiCharacter.transform.position.x, aiCharacter.transform.position.y, aiCharacter.transform.position.z); //Object.Destroy(GetComponent<Rigidbody>()); } if (enemy && enemy.GetTarget() == true && gameObject.tag == "F2") // if flag 2 hit by enemy, assign flag to enemy character. { transform.parent = enemy.transform; transform.position = new Vector3(enemy.transform.position.x, enemy.transform.position.y, enemy.transform.position.z + 0.5f); } }