// Update is called once per frame void Update() { foreach (SpwanMobData item in SpwanMobs) { item.Update(); if (item.ReadyToSpwan() && (unvisible || SpwanWhenVisible)) { item.SpwanMob(); } } if (!isActive && IsometricUtility.ToIsometricDistance( transform.position, player.position) <= ActiveRange) { isActive = true; foreach (SpwanMobData item in SpwanMobs) { item.SetActive(true); } } else if (isActive && IsometricUtility.ToIsometricDistance( transform.position, player.position) > ActiveRange) { isActive = false; foreach (SpwanMobData item in SpwanMobs) { item.SetActive(false); } } }
public override void Update() { if (IsometricUtility.ToIsometricDistance(manager.Character.transform.position, manager.player.transform.position) > manager.AISetting.DetectedDistance) { manager.SetState(new AIIdel()); } if (pathFinded == true) { if (IsometricUtility.ToIsometricDistance(manager.player.transform.position, manager.Character.transform.position) < manager.AISetting.AttackDistance && manager.Character.RunTimeData.BasicAttackTimer <= 0) { manager.SetState(new AIAttack()); } else if (IsometricUtility.ToIsometricDistance(nextPoint, manager.Character.transform.position) > manager.AISetting.StopDistance) { manager.Character.Move( (nextPoint - manager.Character.transform.position).normalized); } else if (!manager.Senser.NextWayPoint(out nextPoint)) { manager.SetState(new AIChase()); } } else if (pathFinded == null) { manager.SetState(new AIIdel()); } }
public override void Update() { idelTimer -= Time.deltaTime; if (idelTimer < 0) { manager.SetState(new AIWandering()); } if (IsometricUtility.ToIsometricDistance (manager.Character.transform.position, manager.player.transform.position) <= manager.AISetting.DetectedDistance) { manager.SetState(new AIChase()); } }
// Start is called before the first frame update void Start() { player = FindObjectOfType <PlayerController>().MyCharacter.transform; foreach (SpwanMobData item in SpwanMobs) { item.Start(gameObject); } if (IsometricUtility.ToIsometricDistance( transform.position, player.position) <= ActiveRange) { isActive = true; } else { isActive = false; } }
public override void Update() { if (IsometricUtility.ToIsometricDistance(manager.Character.transform.position, manager.player.transform.position) > manager.AISetting.DetectedDistance) { manager.SetState(new AIIdel()); } if (IsometricUtility.ToIsometricDistance(manager.player.transform.position, manager.Character.transform.position) > manager.AISetting.AttackDistance) { manager.SetState(new AIChase()); } if (manager.Character.RunTimeData.BasicAttackTimer <= 0) { manager.Character.Move( (manager.player.transform.position - manager.Character.transform.position).normalized); manager.Character.BasicAttack(); } }