private void UpdateSurroundingAreaInformation() { RaycastHit[] Hits = Physics.SphereCastAll(transform.position, AreaCheckRadius, Vector3.forward, 0.001f); int nearbyEntities = 0; bool playerNearby = false; int enemyEntitiesNearby = 0; if (Hits.Length > 0) { for (int i = 0; i < Hits.Length; ++i) { GameObject HitObject = Hits[i].collider.gameObject; if (HitObject.tag == "GameEntity") { nearbyEntities++; EntityTag TagManager = GetComponent <EntityTag>() as EntityTag; if (TagManager.Is(Tag.Enemy)) { enemyEntitiesNearby++; } if (TagManager.Is(Tag.Player)) { playerNearby = true; } } } PlayerNearby = playerNearby; EnemyEntitiesNearby = enemyEntitiesNearby; } }
void OnTriggerEnter(Collider Other) { EntityTag OtherColliderTag = Other.gameObject.GetComponent <EntityTag>(); for (int i = 0; i < TriggerOnTagEnter.Length; ++i) { if (OtherColliderTag.Is(TriggerOnTagEnter[i])) { TriggerAction(); } } }
/// <summary> /// Checks to see if an entity is tagged with a specified tag /// </summary> /// <param name="Entity"></param> /// <param name="Tag"></param> /// <returns></returns> public static bool EntityIs(GameObject Entity, Tag Tag) { EntityTag _Tag = Entity.GetComponent <EntityTag>(); if (!_Tag) { Debug.Log("Game Object does not contain an EntityTag: " + Entity.ToString()); return(false); } else { return(_Tag.Is(Tag)); } }
/// <summary> /// caches all spawnpoints in game world into this collection /// </summary> public void CacheAll() { GameObject[] Entities = GameObject.FindGameObjectsWithTag("GameEntity"); if (Entities.Length > 0) { for (int i = 0; i < Entities.Length; ++i) { EntityTag TagManager = Entities[i].GetComponent <EntityTag>(); if (TagManager != null) { if (TagManager.Is(Tag.SpawnPoint)) { SpawnPoints.Add(Entities[i]); } } else { Debug.LogError("ERROR: Entity does not have EntityTag: " + Entities[i].ToString()); } } } }