Enemy.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class Enemy : MonoBehaviour
  5. {
  6. [SerializeField]
  7. private GameObject powerDrop;
  8. [SerializeField]
  9. private PowerLevels powerLevel;
  10. private float power;
  11. private enum PowerLevels { VeryLow, Low, Medium, High, Full}
  12. private EnemyAI.BehaviorController behaviorController;
  13. private bool dead = false;
  14. void OnCollisionEnter(Collision collision)
  15. {
  16. if(!dead)
  17. {
  18. if (collision.collider.tag == "Bullet")
  19. {
  20. Death();
  21. }
  22. }
  23. }
  24. // Use this for initialization
  25. void Start ()
  26. {
  27. behaviorController = new EnemyAI.BehaviorController();
  28. behaviorController.blackboard.navMeshAgent = GetComponent<UnityEngine.AI.NavMeshAgent>();
  29. }
  30. // Update is called once per frame
  31. void Update ()
  32. {
  33. if (!dead)
  34. {
  35. EnemyAI.Blackboard blackboard = behaviorController.blackboard;
  36. // TODO get state
  37. blackboard.Night = true;
  38. blackboard.PlayerPosition = GameObject.FindGameObjectWithTag("Player").transform.position;
  39. blackboard.EnemyPosition = transform.position;
  40. behaviorController.Update();
  41. }
  42. }
  43. private void Death()
  44. {
  45. dead = true;
  46. GetComponent<UnityEngine.AI.NavMeshAgent>().isStopped = true;
  47. GameObject go = GameObject.Instantiate(powerDrop);
  48. go.GetComponent<PowerDrop>().powerAmount = power;
  49. go.transform.position = gameObject.transform.position;
  50. GameObject.Destroy(gameObject);
  51. }
  52. }