forked from cgvr/DeltaVR
FMODi paigaldamine projekti sisse, fmod project created, assets are imported into FMOD; AudioManager and FMODEvents scripts, VR is set up
This commit is contained in:
127
Assets/Plugins/FMOD/src/EventHandler.cs
Normal file
127
Assets/Plugins/FMOD/src/EventHandler.cs
Normal file
@@ -0,0 +1,127 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
|
||||
namespace FMODUnity
|
||||
{
|
||||
public abstract class EventHandler : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, IPointerDownHandler, IPointerUpHandler
|
||||
{
|
||||
public string CollisionTag = "";
|
||||
|
||||
protected virtual void Start()
|
||||
{
|
||||
HandleGameEvent(EmitterGameEvent.ObjectStart);
|
||||
}
|
||||
|
||||
protected virtual void OnDestroy()
|
||||
{
|
||||
HandleGameEvent(EmitterGameEvent.ObjectDestroy);
|
||||
}
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
HandleGameEvent(EmitterGameEvent.ObjectEnable);
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
HandleGameEvent(EmitterGameEvent.ObjectDisable);
|
||||
}
|
||||
|
||||
#if UNITY_PHYSICS_EXIST
|
||||
private void OnTriggerEnter(Collider other)
|
||||
{
|
||||
if (string.IsNullOrEmpty(CollisionTag) || other.CompareTag(CollisionTag) || (other.attachedRigidbody && other.attachedRigidbody.CompareTag(CollisionTag)))
|
||||
{
|
||||
HandleGameEvent(EmitterGameEvent.TriggerEnter);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnTriggerExit(Collider other)
|
||||
{
|
||||
if (string.IsNullOrEmpty(CollisionTag) || other.CompareTag(CollisionTag) || (other.attachedRigidbody && other.attachedRigidbody.CompareTag(CollisionTag)))
|
||||
{
|
||||
HandleGameEvent(EmitterGameEvent.TriggerExit);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#if UNITY_PHYSICS2D_EXIST
|
||||
private void OnTriggerEnter2D(Collider2D other)
|
||||
{
|
||||
if (string.IsNullOrEmpty(CollisionTag) || other.CompareTag(CollisionTag))
|
||||
{
|
||||
HandleGameEvent(EmitterGameEvent.TriggerEnter2D);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnTriggerExit2D(Collider2D other)
|
||||
{
|
||||
if (string.IsNullOrEmpty(CollisionTag) || other.CompareTag(CollisionTag))
|
||||
{
|
||||
HandleGameEvent(EmitterGameEvent.TriggerExit2D);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
private void OnCollisionEnter()
|
||||
{
|
||||
HandleGameEvent(EmitterGameEvent.CollisionEnter);
|
||||
}
|
||||
|
||||
private void OnCollisionExit()
|
||||
{
|
||||
HandleGameEvent(EmitterGameEvent.CollisionExit);
|
||||
}
|
||||
|
||||
private void OnCollisionEnter2D()
|
||||
{
|
||||
HandleGameEvent(EmitterGameEvent.CollisionEnter2D);
|
||||
}
|
||||
|
||||
private void OnCollisionExit2D()
|
||||
{
|
||||
HandleGameEvent(EmitterGameEvent.CollisionExit2D);
|
||||
}
|
||||
|
||||
private void OnMouseEnter()
|
||||
{
|
||||
HandleGameEvent(EmitterGameEvent.ObjectMouseEnter);
|
||||
}
|
||||
|
||||
private void OnMouseExit()
|
||||
{
|
||||
HandleGameEvent(EmitterGameEvent.ObjectMouseExit);
|
||||
}
|
||||
|
||||
private void OnMouseDown()
|
||||
{
|
||||
HandleGameEvent(EmitterGameEvent.ObjectMouseDown);
|
||||
}
|
||||
|
||||
private void OnMouseUp()
|
||||
{
|
||||
HandleGameEvent(EmitterGameEvent.ObjectMouseUp);
|
||||
}
|
||||
|
||||
public void OnPointerEnter(PointerEventData eventData)
|
||||
{
|
||||
HandleGameEvent(EmitterGameEvent.UIMouseEnter);
|
||||
}
|
||||
|
||||
public void OnPointerExit(PointerEventData eventData)
|
||||
{
|
||||
HandleGameEvent(EmitterGameEvent.UIMouseExit);
|
||||
}
|
||||
public void OnPointerDown(PointerEventData eventData)
|
||||
{
|
||||
HandleGameEvent(EmitterGameEvent.UIMouseDown);
|
||||
}
|
||||
|
||||
public void OnPointerUp(PointerEventData eventData)
|
||||
{
|
||||
HandleGameEvent(EmitterGameEvent.UIMouseUp);
|
||||
}
|
||||
|
||||
protected abstract void HandleGameEvent(EmitterGameEvent gameEvent);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user