178 lines
6.3 KiB
C#
178 lines
6.3 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace HighlightPlus {
|
|
|
|
[CreateAssetMenu (menuName = "Highlight Plus Profile", fileName = "Highlight Plus Profile", order = 100)]
|
|
[HelpURL ("https://kronnect.freshdesk.com/support/solutions/42000065090")]
|
|
public class HighlightProfile : ScriptableObject {
|
|
|
|
public TargetOptions effectGroup = TargetOptions.Children;
|
|
public LayerMask effectGroupLayer = -1;
|
|
[Range(0,1)]
|
|
public float alphaCutOff = 0;
|
|
public bool cullBackFaces = true;
|
|
|
|
public float fadeInDuration;
|
|
public float fadeOutDuration;
|
|
|
|
[Range (0, 1)]
|
|
public float overlay = 0.5f;
|
|
public Color overlayColor = Color.yellow;
|
|
public float overlayAnimationSpeed = 1f;
|
|
[Range (0, 1)]
|
|
public float overlayMinIntensity = 0.5f;
|
|
[Range (0, 1)]
|
|
public float overlayBlending = 1.0f;
|
|
|
|
[Range (0, 1)]
|
|
public float outline = 1f;
|
|
public Color outlineColor = Color.black;
|
|
public float outlineWidth = 0.45f;
|
|
public QualityLevel outlineQuality = QualityLevel.Fastest;
|
|
public bool outlineAlwaysOnTop;
|
|
|
|
[Range (0, 5)]
|
|
public float glow = 1f;
|
|
public float glowWidth = 0.4f;
|
|
public QualityLevel glowQuality = QualityLevel.Fastest;
|
|
public Color glowHQColor = new Color (0.64f, 1f, 0f, 1f);
|
|
public bool glowDithering = true;
|
|
public float glowMagicNumber1 = 0.75f;
|
|
public float glowMagicNumber2 = 0.5f;
|
|
public float glowAnimationSpeed = 1f;
|
|
public bool glowAlwaysOnTop;
|
|
public GlowPassData[] glowPasses;
|
|
|
|
[Range (0, 5f)]
|
|
public float innerGlow = 0f;
|
|
[Range (0, 2)]
|
|
public float innerGlowWidth = 1f;
|
|
public Color innerGlowColor = Color.white;
|
|
public bool innerGlowAlwaysOnTop;
|
|
|
|
public bool targetFX;
|
|
public Texture2D targetFXTexture;
|
|
public Color targetFXColor = Color.white;
|
|
public float targetFXRotationSpeed = 50f;
|
|
public float targetFXInitialScale = 4f;
|
|
public float targetFXEndScale = 1.5f;
|
|
public float targetFXTransitionDuration = 0.5f;
|
|
public float targetFXStayDuration = 1.5f;
|
|
|
|
public SeeThroughMode seeThrough;
|
|
[Range (0, 5f)]
|
|
public float seeThroughIntensity = 0.8f;
|
|
[Range (0, 1)]
|
|
public float seeThroughTintAlpha = 0.5f;
|
|
public Color seeThroughTintColor = Color.red;
|
|
|
|
|
|
public void Load (HighlightEffect effect) {
|
|
effect.effectGroup = effectGroup;
|
|
effect.effectGroupLayer = effectGroupLayer;
|
|
effect.alphaCutOff = alphaCutOff;
|
|
effect.cullBackFaces = cullBackFaces;
|
|
effect.fadeInDuration = fadeInDuration;
|
|
effect.fadeOutDuration = fadeOutDuration;
|
|
effect.overlay = overlay;
|
|
effect.overlayColor = overlayColor;
|
|
effect.overlayAnimationSpeed = overlayAnimationSpeed;
|
|
effect.overlayMinIntensity = overlayMinIntensity;
|
|
effect.overlayBlending = overlayBlending;
|
|
effect.outline = outline;
|
|
effect.outlineColor = outlineColor;
|
|
effect.outlineWidth = outlineWidth;
|
|
effect.outlineQuality = outlineQuality;
|
|
effect.outlineAlwaysOnTop = outlineAlwaysOnTop;
|
|
effect.glow = glow;
|
|
effect.glowWidth = glowWidth;
|
|
effect.glowQuality = glowQuality;
|
|
effect.glowHQColor = glowHQColor;
|
|
effect.glowDithering = glowDithering;
|
|
effect.glowMagicNumber1 = glowMagicNumber1;
|
|
effect.glowMagicNumber2 = glowMagicNumber2;
|
|
effect.glowAnimationSpeed = glowAnimationSpeed;
|
|
effect.glowAlwaysOnTop = glowAlwaysOnTop;
|
|
effect.glowPasses = GetGlowPassesCopy (glowPasses);
|
|
effect.innerGlow = innerGlow;
|
|
effect.innerGlowWidth = innerGlowWidth;
|
|
effect.innerGlowColor = innerGlowColor;
|
|
effect.innerGlowAlwaysOnTop = innerGlowAlwaysOnTop;
|
|
effect.targetFX = targetFX;
|
|
effect.targetFXColor = targetFXColor;
|
|
effect.targetFXEndScale = targetFXEndScale;
|
|
effect.targetFXInitialScale = targetFXInitialScale;
|
|
effect.targetFXRotationSpeed = targetFXRotationSpeed;
|
|
effect.targetFXStayDuration = targetFXStayDuration;
|
|
effect.targetFXTexture = targetFXTexture;
|
|
effect.targetFXTransitionDuration = targetFXTransitionDuration;
|
|
effect.seeThrough = seeThrough;
|
|
effect.seeThroughIntensity = seeThroughIntensity;
|
|
effect.seeThroughTintAlpha = seeThroughTintAlpha;
|
|
effect.seeThroughTintColor = seeThroughTintColor;
|
|
}
|
|
|
|
public void Save (HighlightEffect effect) {
|
|
effectGroup = effect.effectGroup;
|
|
effectGroupLayer = effect.effectGroupLayer;
|
|
alphaCutOff = effect.alphaCutOff;
|
|
cullBackFaces = effect.cullBackFaces;
|
|
fadeInDuration = effect.fadeInDuration;
|
|
fadeOutDuration = effect.fadeOutDuration;
|
|
overlay = effect.overlay;
|
|
overlayColor = effect.overlayColor;
|
|
overlayAnimationSpeed = effect.overlayAnimationSpeed;
|
|
overlayMinIntensity = effect.overlayMinIntensity;
|
|
overlayBlending = effect.overlayBlending;
|
|
outline = effect.outline;
|
|
outlineColor = effect.outlineColor;
|
|
outlineWidth = effect.outlineWidth;
|
|
outlineQuality = effect.outlineQuality;
|
|
outlineAlwaysOnTop = effect.outlineAlwaysOnTop;
|
|
glow = effect.glow;
|
|
glowWidth = effect.glowWidth;
|
|
glowQuality = effect.glowQuality;
|
|
glowHQColor = effect.glowHQColor;
|
|
glowDithering = effect.glowDithering;
|
|
glowMagicNumber1 = effect.glowMagicNumber1;
|
|
glowMagicNumber2 = effect.glowMagicNumber2;
|
|
glowAnimationSpeed = effect.glowAnimationSpeed;
|
|
glowAlwaysOnTop = effect.glowAlwaysOnTop;
|
|
glowPasses = GetGlowPassesCopy (effect.glowPasses);
|
|
innerGlow = effect.innerGlow;
|
|
innerGlowWidth = effect.innerGlowWidth;
|
|
innerGlowColor = effect.innerGlowColor;
|
|
innerGlowAlwaysOnTop = effect.innerGlowAlwaysOnTop;
|
|
targetFX = effect.targetFX;
|
|
targetFXColor = effect.targetFXColor;
|
|
targetFXEndScale = effect.targetFXEndScale;
|
|
targetFXInitialScale = effect.targetFXInitialScale;
|
|
targetFXRotationSpeed = effect.targetFXRotationSpeed;
|
|
targetFXStayDuration = effect.targetFXStayDuration;
|
|
targetFXTexture = effect.targetFXTexture;
|
|
targetFXTransitionDuration = effect.targetFXTransitionDuration;
|
|
seeThrough = effect.seeThrough;
|
|
seeThroughIntensity = effect.seeThroughIntensity;
|
|
seeThroughTintAlpha = effect.seeThroughTintAlpha;
|
|
seeThroughTintColor = effect.seeThroughTintColor;
|
|
}
|
|
|
|
GlowPassData[] GetGlowPassesCopy (GlowPassData[] glowPasses) {
|
|
if (glowPasses == null) {
|
|
return new GlowPassData[0];
|
|
}
|
|
GlowPassData[] pd = new GlowPassData[glowPasses.Length];
|
|
for (int k = 0; k < glowPasses.Length; k++) {
|
|
pd [k].alpha = glowPasses [k].alpha;
|
|
pd [k].color = glowPasses [k].color;
|
|
pd [k].offset = glowPasses [k].offset;
|
|
}
|
|
return pd;
|
|
}
|
|
}
|
|
}
|
|
|