├── .gitignore ├── Assets ├── Plugins.meta └── Plugins │ ├── EntityEventSystem.meta │ └── EntityEventSystem │ ├── Behaviours.meta │ ├── Behaviours │ ├── PointerPublisherBehaviour.cs │ └── PointerPublisherBehaviour.cs.meta │ ├── Components.meta │ ├── Components │ ├── EventComponentData.cs │ └── EventComponentData.cs.meta │ ├── EventPublishingSystem.cs │ ├── EventPublishingSystem.cs.meta │ ├── Systems.meta │ └── Systems │ ├── EntityEventSystem.cs │ └── EntityEventSystem.cs.meta ├── Packages └── manifest.json ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset ├── UnityConnectSettings.asset ├── VFXManager.asset └── XRSettings.asset └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | # This .gitignore file should be placed at the root of your Unity project directory 2 | 3 | /[Ll]ibrary/ 4 | /[Tt]emp/ 5 | /[Oo]bj/ 6 | /[Bb]uild/ 7 | /[Bb]uilds/ 8 | /[Ll]ogs/ 9 | 10 | # Never ignore Asset meta data 11 | !/[Aa]ssets/**/*.meta 12 | 13 | # Uncomment this line if you wish to ignore the asset store tools plugin 14 | # /[Aa]ssets/AssetStoreTools* 15 | 16 | # TextMesh Pro files 17 | [Aa]ssets/TextMesh*Pro/ 18 | 19 | # Visual Studio cache directory 20 | .vs/ 21 | 22 | # Gradle cache directory 23 | .gradle/ 24 | 25 | # Autogenerated VS/MD/Consulo solution and project files 26 | ExportedObj/ 27 | .consulo/ 28 | *.csproj 29 | *.unityproj 30 | *.sln 31 | *.suo 32 | *.tmp 33 | *.user 34 | *.userprefs 35 | *.pidb 36 | *.booproj 37 | *.svd 38 | *.pdb 39 | *.mdb 40 | *.opendb 41 | *.VC.db 42 | 43 | # Unity3D generated meta files 44 | *.pidb.meta 45 | *.pdb.meta 46 | *.mdb.meta 47 | 48 | # Unity3D generated file on crash reports 49 | sysinfo.txt 50 | 51 | # Builds 52 | *.apk 53 | *.unitypackage 54 | 55 | # Crashlytics generated file 56 | crashlytics-build.properties -------------------------------------------------------------------------------- /Assets/Plugins.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7e2a2e1ca7f004c87b5c92c1ad315ae5 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Plugins/EntityEventSystem.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a3e18ca654f7a422f9f17bff3ee93585 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Plugins/EntityEventSystem/Behaviours.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ae2e6bcc348fc4e4295e0354cec768ed 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Plugins/EntityEventSystem/Behaviours/PointerPublisherBehaviour.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | using UnityEngine; 3 | using UnityEngine.EventSystems; 4 | 5 | public class PointerPublisherBehaviour : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, IPointerDownHandler, IPointerUpHandler, IPointerClickHandler, IDragHandler 6 | { 7 | public GameObjectEntity gameObjectEntity; 8 | 9 | EntityEventSystem entityEventSystem; 10 | EntityEventSystem EntityEventSystem 11 | { 12 | get 13 | { 14 | if (entityEventSystem == null) 15 | { 16 | entityEventSystem = World.Active.GetExistingManager(); 17 | } 18 | return entityEventSystem; 19 | } 20 | } 21 | 22 | public void OnPointerEnter(PointerEventData eventData) 23 | { 24 | EntityEventSystem.PublishData(new PointerEvent(gameObjectEntity.Entity, PointerEventType.Enter)); 25 | } 26 | 27 | public void OnPointerExit(PointerEventData eventData) 28 | { 29 | EntityEventSystem.PublishData(new PointerEvent(gameObjectEntity.Entity, PointerEventType.Exit)); 30 | } 31 | 32 | public void OnPointerDown(PointerEventData eventData) 33 | { 34 | EntityEventSystem.PublishData(new PointerEvent(gameObjectEntity.Entity, PointerEventType.Down)); 35 | } 36 | 37 | public void OnPointerUp(PointerEventData eventData) 38 | { 39 | EntityEventSystem.PublishData(new PointerEvent(gameObjectEntity.Entity, PointerEventType.Up)); 40 | } 41 | 42 | public void OnPointerClick(PointerEventData eventData) 43 | { 44 | EntityEventSystem.PublishData(new PointerEvent(gameObjectEntity.Entity, PointerEventType.Click)); 45 | } 46 | 47 | public void OnDrag(PointerEventData eventData) 48 | { 49 | EntityEventSystem.PublishData(new PointerEvent(gameObjectEntity.Entity, PointerEventType.Drag)); 50 | } 51 | } 52 | 53 | public struct PointerEvent : IComponentData 54 | { 55 | public Entity Entity; 56 | public PointerEventType EventType; 57 | 58 | public PointerEvent(Entity entity, PointerEventType eventType) 59 | { 60 | Entity = entity; 61 | EventType = eventType; 62 | } 63 | } 64 | 65 | public struct EventDataBase : IComponentData { } 66 | 67 | public enum PointerEventType 68 | { 69 | Enter, 70 | Exit, 71 | Down, 72 | Up, 73 | Click, 74 | Drag, 75 | } 76 | -------------------------------------------------------------------------------- /Assets/Plugins/EntityEventSystem/Behaviours/PointerPublisherBehaviour.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ee49af6024a654d46af2e7161be683ca 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Plugins/EntityEventSystem/Components.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3d70bd39b0fea40e0962060fdb5aeff6 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Plugins/EntityEventSystem/Components/EventComponentData.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | public struct EventComponentData : IComponentData { public int Index; } -------------------------------------------------------------------------------- /Assets/Plugins/EntityEventSystem/Components/EventComponentData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5d6af9ab952134a97ac53915c06a5e3a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Plugins/EntityEventSystem/EventPublishingSystem.cs: -------------------------------------------------------------------------------- 1 | //using AlphaECS; 2 | //using AlphaECS.Unity; 3 | //using System; 4 | //using System.Collections.Generic; 5 | //using UnityEngine.UI; 6 | //using UniRx; 7 | //using UniRx.Triggers; 8 | using Unity.Entities; 9 | 10 | public class EventPublishingSystem : ComponentSystem 11 | { 12 | protected override void OnUpdate() 13 | { 14 | //throw new System.NotImplementedException(); 15 | } 16 | //IGroup eventButtons; 17 | 18 | //public override void Initialize(IEventSystem eventSystem, IPoolManager poolManager, GroupFactory groupFactory) 19 | //{ 20 | // base.Initialize(eventSystem, poolManager, groupFactory); 21 | 22 | // eventButtons = this.CreateGroup(new HashSet { typeof(Button), typeof(EventDataWrapper) }); 23 | //} 24 | 25 | //public override void OnEnable() 26 | //{ 27 | // base.OnEnable(); 28 | 29 | // eventButtons.OnAdd().Subscribe(entity => 30 | // { 31 | // var button = entity.GetComponent