public Decal NewDecal <T>(float lifetime, Decal.UpdateDecalDelegate update, Vector3 position, Vector3 scale, Quaternion rotation, Material material, bool visible) where T : Decal, new()
        {
            if ((_maxDecals > 0) && (_decals.Count >= _maxDecals))
            {
                RemoveDecalByIndex(0);
            }

            var d = new T();

            d.Init(_decalRenderer.NewDecal(Vector3.zero, Vector3.one, Quaternion.identity, material, visible), this, lifetime, update);
            d.drd.position = position;
            d.drd.scale    = scale;
            d.drd.rotation = rotation;
            _decals.Add(d);
            if (visible)
            {
                _decalsAdded = true;
            }
            return(d);
        }
 public Decal NewDecal <T>(float lifetime, Decal.UpdateDecalDelegate update, Vector3 position, Vector3 scale, Quaternion rotation, Material material, bool visible) where T : Decal, new()
 {
     return(_decalGroups[(int)EDecalGroup.General].NewDecal <T>(lifetime, update, position, scale, rotation, material, visible));
 }
 public Decal NewDecal(float lifetime, Decal.UpdateDecalDelegate update, Vector3 position, Vector3 scale, Quaternion rotation, Material material, bool visible)
 {
     return(NewDecal <Decal>(lifetime, update, position, scale, rotation, material, visible));
 }