50 lines
1.1 KiB
C#
50 lines
1.1 KiB
C#
using UnityEngine;
|
|
|
|
public class vp_SecurityCamTurret : vp_SimpleAITurret
|
|
{
|
|
private vp_AngleBob m_AngleBob;
|
|
|
|
public GameObject Swivel;
|
|
|
|
private Vector3 SwivelRotation = Vector3.zero;
|
|
|
|
public float SwivelAmp = 100f;
|
|
|
|
public float SwivelRate = 0.5f;
|
|
|
|
public float SwivelOffset;
|
|
|
|
private vp_Timer.Handle vp_ResumeSwivelTimer = new vp_Timer.Handle();
|
|
|
|
protected override void Start()
|
|
{
|
|
base.Start();
|
|
m_Transform = base.transform;
|
|
m_AngleBob = base.gameObject.AddComponent<vp_AngleBob>();
|
|
m_AngleBob.BobAmp.y = SwivelAmp;
|
|
m_AngleBob.BobRate.y = SwivelRate;
|
|
m_AngleBob.YOffset = SwivelOffset;
|
|
m_AngleBob.FadeToTarget = true;
|
|
SwivelRotation = Swivel.transform.eulerAngles;
|
|
}
|
|
|
|
protected override void Update()
|
|
{
|
|
base.Update();
|
|
if (m_Target != null && m_AngleBob.enabled)
|
|
{
|
|
m_AngleBob.enabled = false;
|
|
vp_ResumeSwivelTimer.Cancel();
|
|
}
|
|
if (m_Target == null && !m_AngleBob.enabled && !vp_ResumeSwivelTimer.Active)
|
|
{
|
|
vp_Timer.In(WakeInterval * 2f, delegate
|
|
{
|
|
m_AngleBob.enabled = true;
|
|
}, vp_ResumeSwivelTimer);
|
|
}
|
|
SwivelRotation.y = m_Transform.eulerAngles.y;
|
|
Swivel.transform.eulerAngles = SwivelRotation;
|
|
}
|
|
}
|