private void OnTriggerExit(Collider other)
 {
     if (other.gameObject.tag.Equals("Monster"))
     {
         MonsterXboxController monster = other.gameObject.GetComponent <MonsterXboxController>();
         if (monster != null)
         {
             string removeInteract = monster.GetInteractButton();
             int    index          = int.Parse(removeInteract.Substring(removeInteract.Length - 1)) - 1;
             interacts[index] = "";
             monsters[index]  = null;
         }
     }
 }
 private void OnTriggerEnter(Collider other)
 {
     if (!totem.StillSpawning() && totem.curEnemy == null && other.gameObject.tag.Equals("Monster"))
     {
         MonsterXboxController monster = other.gameObject.GetComponent <MonsterXboxController>();
         if (monster != null)
         {
             string newInteract = monster.GetInteractButton();
             int    index       = int.Parse(newInteract.Substring(newInteract.Length - 1)) - 1;
             interacts[index] = newInteract;
             monsters[index]  = monster;
         }
     }
 }
Beispiel #3
0
 // Update is called once per frame
 void Update()
 {
     if (monster != null)
     {
         transform.localScale = new Vector3(Mathf.Max(0f, monster.GetHealth() / maxHP), 1f, 1f) * modifier;
     }
     else
     {
         GameObject monsterObject = GameObject.Find(monsterName);
         if (monsterObject != null)
         {
             monster = monsterObject.GetComponentInChildren <MonsterXboxController>();
             if (monster != null)
             {
                 maxHP = monster.GetHealth();
             }
         }
     }
 }
 void Update()
 {
     if (allowHit)
     {
         Vector3    backward = -Vector3.forward;
         Vector3    left     = Quaternion.AngleAxis(5f, Vector3.right) * backward;
         Vector3    right    = Quaternion.AngleAxis(5f, -Vector3.right) * backward;
         Vector3    up       = Quaternion.AngleAxis(5f, Vector3.up) * backward;
         Vector3    down     = Quaternion.AngleAxis(5f, -Vector3.up) * backward;
         RaycastHit hit;
         if (Physics.Raycast(transform.position, transform.TransformDirection(backward), out hit, hitDistance, layerMask))
         {
             if (hit.collider.tag.Equals("Monster"))
             {
                 MonsterXboxController monster = hit.collider.gameObject.GetComponent <MonsterXboxController>();
                 if (monster != null)
                 {
                     monster.SetHitTrigger();
                     monster.ReduceHeath();
                 }
             }
             else if (hit.collider.tag.Equals("Totem"))
             {
                 EnemyGenerator totem = hit.collider.gameObject.GetComponent <EnemyGenerator>();
                 if (totem != null)
                 {
                     if (totem.StopSpawning())
                     {
                         gameManager.shrinesHit++;
                         StartCoroutine(ShowShrinesLeft());
                     }
                 }
             }
         }
         else if (Physics.Raycast(transform.position, transform.TransformDirection(left), out hit, hitDistance, layerMask))
         {
             if (hit.collider.tag.Equals("Monster"))
             {
                 MonsterXboxController monster = hit.collider.gameObject.GetComponent <MonsterXboxController>();
                 if (monster != null)
                 {
                     monster.SetHitTrigger();
                     monster.ReduceHeath();
                 }
             }
             else if (hit.collider.tag.Equals("Totem"))
             {
                 EnemyGenerator totem = hit.collider.gameObject.GetComponent <EnemyGenerator>();
                 if (totem != null)
                 {
                     if (totem.StopSpawning())
                     {
                         gameManager.shrinesHit++;
                         StartCoroutine(ShowShrinesLeft());
                     }
                 }
             }
         }
         else if (Physics.Raycast(transform.position, transform.TransformDirection(right), out hit, hitDistance, layerMask))
         {
             if (hit.collider.tag.Equals("Monster"))
             {
                 MonsterXboxController monster = hit.collider.gameObject.GetComponent <MonsterXboxController>();
                 if (monster != null)
                 {
                     monster.SetHitTrigger();
                     monster.ReduceHeath();
                 }
             }
             else if (hit.collider.tag.Equals("Totem"))
             {
                 EnemyGenerator totem = hit.collider.gameObject.GetComponent <EnemyGenerator>();
                 if (totem != null)
                 {
                     if (totem.StopSpawning())
                     {
                         gameManager.shrinesHit++;
                         StartCoroutine(ShowShrinesLeft());
                     }
                 }
             }
         }
         else if (Physics.Raycast(transform.position, transform.TransformDirection(up), out hit, hitDistance, layerMask))
         {
             if (hit.collider.tag.Equals("Monster"))
             {
                 MonsterXboxController monster = hit.collider.gameObject.GetComponent <MonsterXboxController>();
                 if (monster != null)
                 {
                     monster.SetHitTrigger();
                     monster.ReduceHeath();
                 }
             }
             else if (hit.collider.tag.Equals("Totem"))
             {
                 EnemyGenerator totem = hit.collider.gameObject.GetComponent <EnemyGenerator>();
                 if (totem != null)
                 {
                     if (totem.StopSpawning())
                     {
                         gameManager.shrinesHit++;
                         StartCoroutine(ShowShrinesLeft());
                     }
                 }
             }
         }
         else if (Physics.Raycast(transform.position, transform.TransformDirection(down), out hit, hitDistance, layerMask))
         {
             if (hit.collider.tag.Equals("Monster"))
             {
                 MonsterXboxController monster = hit.collider.gameObject.GetComponent <MonsterXboxController>();
                 if (monster != null)
                 {
                     monster.SetHitTrigger();
                     monster.ReduceHeath();
                 }
             }
             else if (hit.collider.tag.Equals("Totem"))
             {
                 EnemyGenerator totem = hit.collider.gameObject.GetComponent <EnemyGenerator>();
                 if (totem != null)
                 {
                     if (totem.StopSpawning())
                     {
                         gameManager.shrinesHit++;
                         StartCoroutine(ShowShrinesLeft());
                     }
                 }
             }
         }
     }
 }