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(); }
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(); }