예제 #1
0
 void OnEnable()
 {
     if (target == null)
     {
         target = transform;
     }
     if (glowPasses == null || glowPasses.Length == 0)
     {
         glowPasses    = new GlowPassData[4];
         glowPasses[0] = new GlowPassData()
         {
             offset = 4, alpha = 0.1f, color = new Color(0.64f, 1f, 0f, 1f)
         };
         glowPasses[1] = new GlowPassData()
         {
             offset = 3, alpha = 0.2f, color = new Color(0.64f, 1f, 0f, 1f)
         };
         glowPasses[2] = new GlowPassData()
         {
             offset = 2, alpha = 0.3f, color = new Color(0.64f, 1f, 0f, 1f)
         };
         glowPasses[3] = new GlowPassData()
         {
             offset = 1, alpha = 0.4f, color = new Color(0.64f, 1f, 0f, 1f)
         };
     }
     offsetsHQ = new Vector2[] {
         new Vector2(0, 1),
         new Vector2(1, 1),
         new Vector2(1, 0),
         new Vector2(1, -1),
         new Vector2(0, -1),
         new Vector2(-1, -1),
         new Vector2(-1, 0),
         new Vector2(-1, 1)
     };
     offsetsMQ = new Vector2[] {
         new Vector2(1, 1),
         new Vector2(1, -1),
         new Vector2(-1, -1),
         new Vector2(-1, 1)
     };
     outlineProps          = new MaterialPropertyBlock();
     glowProps             = new MaterialPropertyBlock();
     shaderPropPivotId     = Shader.PropertyToID("_Pivot");
     shaderPropGlowId      = Shader.PropertyToID("_Glow");
     shaderPropGlowColorId = Shader.PropertyToID("_GlowColor");
     cachedMeshes          = new Dictionary <Sprite, Mesh>();
     cachedTextures        = new Dictionary <Texture, Texture>();
     CheckSpriteSupportDependencies();
     SetupMaterial();
 }
예제 #2
0
        private void SetupWithConfig(HightLightConfig config, HighlightEffect newEffect = null)
        {
            if (newEffect != null)
            {
                _effectHolder = newEffect;
            }

            if (config.Outline)
            {
                _effect.outline      = 1;
                _effect.outlineWidth = config.OutlineWidth;
                _effect.outlineColor = config.OutlineColor;
            }
            else
            {
                _effect.outline = 0;
            }

            if (config.Glow)
            {
                _effect.glow      = 1;
                _effect.glowWidth = config.GlowWidth;

                GlowPassData glowPass = new GlowPassData();
                glowPass.alpha  = config.GlowAlpha;
                glowPass.offset = config.GlowOffset;
                glowPass.color  = config.GlowColor;

                _effect.glowHQColor = config.GlowColor;

                _effect.glowPasses[0] = glowPass;

                _effect.glowDithering      = false;
                _effect.glowAnimationSpeed = 0;
            }
            else
            {
                _effect.glow = 0;
            }

            if (config.SeeThrough)
            {
                _effect.seeThrough          = SeeThroughMode.WhenHighlighted;
                _effect.seeThroughIntensity = config.SeeThroughIntensity;
                _effect.seeThroughTintAlpha = config.SeeThroughAlpha;
                _effect.seeThroughTintColor = config.SeeThroughColor;
            }
            else
            {
                _effect.seeThrough = SeeThroughMode.Never;
            }

            if (config.Overlay)
            {
                _effect.overlayColor          = config.OverlayColor;
                _effect.overlayMinIntensity   = 0.5f;
                _effect.overlay               = config.OverlayAlpha;
                _effect.overlayAnimationSpeed = config.OverlayAnimationSpeed;
            }
            else
            {
                _effect.overlayMinIntensity = 0f;
                _effect.overlay             = 0.0f;
            }

            _effect.outlineQuality      = QualityLevel.High;
            _effect.outlineDownsampling = 1;

            _effect.Refresh();
        }