Skip to content

Instantly share code, notes, and snippets.

@timmeh4242
Created May 24, 2019 03:51
Show Gist options
  • Save timmeh4242/6b0701647ae7af41a6950d2d577c49f7 to your computer and use it in GitHub Desktop.
Save timmeh4242/6b0701647ae7af41a6950d2d577c49f7 to your computer and use it in GitHub Desktop.
using Unity.Entities;
using UnityEngine;
using UnityEngine.EventSystems;
public class PointerPublisherBehaviour : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, IPointerDownHandler, IPointerUpHandler, IPointerClickHandler, IDragHandler
{
public GameObjectEntity gameObjectEntity;
EntityEventSystem eventSystem;
EntityEventSystem EventSystem => eventSystem ?? (eventSystem = World.Active.GetExistingManager<EntityEventSystem>());
public void OnPointerEnter(PointerEventData eventData)
{
EntityEventSystem.PublishData(new PointerEvent(gameObjectEntity.Entity, PointerEventType.Enter));
}
public void OnPointerExit(PointerEventData eventData)
{
EntityEventSystem.PublishData(new PointerEvent(gameObjectEntity.Entity, PointerEventType.Exit));
}
public void OnPointerDown(PointerEventData eventData)
{
EntityEventSystem.PublishData(new PointerEvent(gameObjectEntity.Entity, PointerEventType.Down));
}
public void OnPointerUp(PointerEventData eventData)
{
EntityEventSystem.PublishData(new PointerEvent(gameObjectEntity.Entity, PointerEventType.Up));
}
public void OnPointerClick(PointerEventData eventData)
{
EntityEventSystem.PublishData(new PointerEvent(gameObjectEntity.Entity, PointerEventType.Click));
}
public void OnDrag(PointerEventData eventData)
{
EntityEventSystem.PublishData(new PointerEvent(gameObjectEntity.Entity, PointerEventType.Drag));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment