Exemple #1
0
 /// <summary>
 /// Cast a Ray to find a Entity Based on allegiance
 /// </summary>
 /// <param name="entity">Current Entity</param>
 /// <param name="allegiance">Allegiance</param>
 /// <param name="mask">Layer Mask</param>
 /// <param name="entityHit">Hit Entity</param>
 /// <returns></returns>
 public static bool RaycastHitEntity(MobaEntity entity, EAllegiance allegiance, LayerMask mask, Vector2 screenPosition, out MobaEntity entityHit)
 {
     entityHit = null;
     RaycastHit[] raycastArray = Physics.RaycastAll(CameraController.instance.sources.currentCamera.ScreenPointToRay(screenPosition), Mathf.Infinity, mask);
     foreach (RaycastHit ray in raycastArray)
     {
         entityHit = ray.transform.GetComponent <MobaEntity>();
         if (entityHit)
         {
             //If the player clicks on any entity with the current allegiance, return true
             if (entity.GetTargetAllegiance(entityHit) == allegiance)
             {
                 Debug.Log("Entity Clicked: " + entityHit.name);
                 return(true);
             }
         }
     }
     return(false);
 }