Advertisement
Guest User

Untitled

a guest
Jun 21st, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4.  
  5. namespace Enemy {
  6. public abstract class Enemy : MonoBehaviour {
  7.  
  8. // Enemy states
  9. protected enum EnemyStates {
  10. Patrol,
  11. Alert,
  12. Hostile
  13. }
  14.  
  15. // How far the enemy can see
  16. protected int visionLength;
  17. // How far the enemy will walk from its spawn point
  18. protected int walkingDistance;
  19.  
  20. // List of enemies active in the game
  21. List<Enemy> enemies = new List<Enemy>();
  22.  
  23. protected void Start() {
  24. // Set every Enemy to do their default state
  25. DoAction(EnemyStates.Patrol);
  26. }
  27.  
  28. protected void Update() {
  29. for(int i = 0; i < enemies.Count; i++) {
  30. if (enemies[i].ShouldChangeState()) {
  31. enemies[i].UpdateEnemyState();
  32. }
  33. }
  34. }
  35.  
  36. public virtual void UpdateEnemyState() {
  37.  
  38. }
  39.  
  40. protected void DoAction(EnemyStates enemyState) {
  41. switch(enemyState) {
  42. case EnemyStates.Patrol:
  43. // Patrol
  44. break;
  45. case EnemyStates.Alert:
  46. // Alert
  47. break;
  48. case EnemyStates.Hostile:
  49. // Hostile
  50. break;
  51. }
  52. }
  53.  
  54. protected virtual bool ShouldChangeState() {
  55. // If player is seen by guard etc. return true
  56. return false;
  57. }
  58. }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement