58 lines
1.2 KiB
C#
58 lines
1.2 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace NeoFPS.CharacterMotion.Parameters
|
|
{
|
|
[MotionGraphElement("Trigger", "My Trigger")]
|
|
public class TriggerParameter : MotionGraphParameter
|
|
{
|
|
private bool m_Triggered = false;
|
|
private int m_Blockers = 0;
|
|
|
|
public bool wasChecked
|
|
{
|
|
get;
|
|
private set;
|
|
}
|
|
|
|
public void Trigger ()
|
|
{
|
|
if (m_Blockers == 0)
|
|
m_Triggered = true;
|
|
}
|
|
|
|
public bool PeekTrigger ()
|
|
{
|
|
return m_Triggered;
|
|
}
|
|
|
|
public bool CheckTrigger ()
|
|
{
|
|
bool result = m_Triggered;
|
|
wasChecked = true;
|
|
return result;
|
|
}
|
|
|
|
public void AddBlocker()
|
|
{
|
|
++m_Blockers;
|
|
m_Triggered = false;
|
|
}
|
|
|
|
public void RemoveBlocker()
|
|
{
|
|
--m_Blockers;
|
|
if (m_Blockers < 0)
|
|
{
|
|
Debug.LogError("Negative number of blockers on motion graph trigger: " + name);
|
|
m_Blockers = 0;
|
|
}
|
|
}
|
|
|
|
public override void ResetValue ()
|
|
{
|
|
m_Triggered = false;
|
|
}
|
|
}
|
|
} |