Project_WL/Assets/ThirdParty/Rob Reijnen/SilhouetteRadarShader/Scripts/AnimateRadar.cs

50 lines
1.3 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AnimateRadar : MonoBehaviour {
private float rim;
public bool AnimatingRim = false;
[Range(0.001f, 1.0f)]
public float RimMargin;
public float RimSpeed;
public bool AnimatingNoise = false;
public Vector2 NoiseSpeed;
Material Mat;
private float RimWidth;
private float RimFalloff;
private Vector2 NoiseOffset = new Vector2(0, 0);
// Use this for initialization
void Awake () {
Mat = GetComponent<Renderer>().material;
RimFalloff = Mat.GetFloat("_RimFalloff");
RimWidth = Mat.GetFloat("_RimWidth");
}
// Update is called once per frame
void Update () {
if (AnimatingRim) { AnimateRim(AnimatingRim, RimMargin, RimSpeed); }
if (AnimatingNoise) { AnimateNoise(AnimatingNoise, NoiseOffset); }
}
public void AnimateRim(bool animate, float margin, float speed)
{
rim = Mathf.PingPong(Time.time * (speed* RimFalloff), RimFalloff * margin);
Mat.SetFloat("_animateRimWidth",(-RimWidth / 2)+((rim/2)-rim));
}
public void AnimateNoise(bool animate, Vector3 NoiseOffset)
{
NoiseOffset.x += Time.deltaTime * NoiseSpeed.x;
NoiseOffset.y += Time.deltaTime * NoiseSpeed.y;
Mat.SetTextureOffset("_NoiseMap", NoiseOffset);
}
}