public static void RemoveSpawnArea(LightningSpawnArea area)
 {
     if (m_SpawnAreas.Contains(area))
     {
         m_SpawnAreas.Remove(area);
     }
 }
 public static void AddSpawnArea(LightningSpawnArea area)
 {
     if (m_SpawnAreas.Contains(area) == false)
     {
         m_SpawnAreas.Add(area);
     }
 }
 float CalculateLightningBoltScaleForArea(LightningSpawnArea area)
 {
     if (m_Style.alignment == LightningArtItem.Alignment.ScaleToFit)
     {
         return(area.lightningArea.y / 2.0f);
     }
     else
     {
         return(m_Style.size);
     }
 }
        Vector3 GetRandomWorldPositionInsideSpawnArea(LightningSpawnArea area)
        {
            float xPos = Random.Range(-area.lightningArea.x, area.lightningArea.x) / 2.0f;
            float zPos = Random.Range(-area.lightningArea.z, area.lightningArea.z) / 2.0f;

            float yPos = 0;

            if (m_Style.alignment == LightningArtItem.Alignment.TopAlign)
            {
                yPos = (area.lightningArea.y / 2.0f) - (m_Style.size / 2.0f);
            }

            return(area.transform.TransformPoint(new Vector3(xPos, yPos, zPos)));
        }
        // Select where the next sprite will be rendered at.
        protected override void CalculateSpriteTRS(BaseSpriteItemData data, out Vector3 spritePosition, out Quaternion spriteRotation, out Vector3 spriteScale)
        {
            LightningSpawnArea area = GetRandomLightningSpawnArea();

            float boltScale = CalculateLightningBoltScaleForArea(area);

            spriteScale = new Vector3(boltScale, boltScale, boltScale);

            spritePosition = GetRandomWorldPositionInsideSpawnArea(area);

            // Always face the sprite textures towards the main camera.
            if (Camera.main == null)
            {
                Debug.LogError("Can't billboard lightning to viewer since there is no main camera tagged.");
                spriteRotation = area.transform.rotation;
            }
            else
            {
                spriteRotation = Quaternion.LookRotation(spritePosition - Camera.main.transform.position, Vector3.up);
            }
        }
Exemplo n.º 6
0
        private bool ContainsLightningSpawnArea()
        {
            LightningSpawnArea area = GameObject.FindObjectOfType <LightningSpawnArea>();

            return(area != null);
        }