Пример #1
0
    public static void MarkForDestruction(SgtLightning model)
    {
        if (model != null)
        {
            model.LightningSpawner = null;

            model.gameObject.SetActive(true);
        }
    }
Пример #2
0
    public static void Pool(SgtLightning model)
    {
        if (model != null)
        {
            model.LightningSpawner = null;

            SgtComponentPool <SgtLightning> .Add(model);
        }
    }
    public SgtLightning Spawn()
    {
        var size      = Random.Range(SizeMin, SizeMax);
        var lightning = SgtLightning.Create(gameObject.layer, transform, size, Radius, Detail);

        if (lightning != null)
        {
            var life = Random.Range(LifeMin, LifeMax);

            lightning.Sprite     = RandomSprite;
            lightning.Color      = RandomColor;
            lightning.Brightness = Brightness;
            lightning.Life       = life;
            lightning.MaxLife    = life;

            lightning.transform.localRotation = Random.rotation;
        }

        return(lightning);
    }
Пример #4
0
    public SgtLightning Spawn()
    {
        if (Mesh != null && LifeMin > 0.0f && LifeMax > 0.0f)
        {
            var sprite = RandomSprite;

            if (sprite != null)
            {
                var lightning = SgtLightning.Create(this);
                var material  = lightning.Material;
                var uv        = SgtHelper.CalculateSpriteUV(sprite);

                if (material == null)
                {
                    material = SgtHelper.CreateTempMaterial("Lightning (Generated)", SgtHelper.ShaderNamePrefix + "Lightning");

                    lightning.SetMaterial(material);
                }

                lightning.Life = Random.Range(LifeMin, LifeMax);
                lightning.Age  = 0.0f;

                lightning.SetMesh(Mesh);

                material.SetTexture("_MainTex", sprite.texture);
                material.SetColor("_Color", SgtHelper.Brighten(RandomColor, Brightness));
                material.SetFloat("_Age", 0.0f);
                material.SetVector("_Offset", new Vector2(uv.x, uv.y));
                material.SetVector("_Scale", new Vector2(uv.z - uv.x, uv.w - uv.y));

                lightning.transform.localRotation = Random.rotation;

                return(lightning);
            }
        }

        return(null);
    }