Skip to content

Commit 46af433

Browse files
committed
Base events created inside package
1 parent 6ef8816 commit 46af433

21 files changed

Lines changed: 438 additions & 0 deletions

Runtime/SOBaseEvents.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
using UnityEngine;
2+
using UnityEngine.Events;
3+
4+
public class BooleanEventListener : MonoBehaviour
5+
{
6+
[System.Serializable]
7+
public class CustomUnityEvent : UnityEvent<bool> { } //ARGUMENT_TYPE_LIST -> Type1, Type2, Type3...
8+
9+
[SerializeField] private BooleanEventScriptableObject BooleanEventScriptableObject;
10+
[SerializeField] private CustomUnityEvent response;
11+
12+
void OnEnable()
13+
{
14+
BooleanEventScriptableObject.AddListener(this);
15+
}
16+
17+
void OnDisable()
18+
{
19+
BooleanEventScriptableObject.RemoveListener(this);
20+
}
21+
22+
public void RiseEvent(bool arg1) //Type1 arg1, Type2 arg2, Type3 arg3...
23+
{
24+
response.Invoke(arg1); //arg1, arg2, arg3...
25+
}
26+
}

Runtime/SOBaseEvents/BooleanEventListener.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
using System.Collections.Generic;
2+
using UnityEngine;
3+
4+
[CreateAssetMenu(fileName ="BooleanEventScriptableObject", menuName ="EspidiGames/SO Events/BooleanEventScriptableObject", order = 20)]
5+
public class BooleanEventScriptableObject : ScriptableObject
6+
{
7+
private List<BooleanEventListener> listeners = new List<BooleanEventListener>();
8+
9+
10+
public void AddListener(BooleanEventListener listener)
11+
{
12+
if (listeners.Contains(listener))
13+
{
14+
Debug.LogError($"[ScriptableObjectEvents] Listener {listener.name} of GameObject {listener.gameObject.name} already registered. Aborting registration.");
15+
return;
16+
}
17+
18+
listeners.Add(listener);
19+
}
20+
21+
public void RemoveListener(BooleanEventListener listener)
22+
{
23+
if (!listeners.Contains(listener))
24+
{
25+
Debug.LogError($"[ScriptableObjectEvents] Listener {listener.name} of GameObject {listener.gameObject.name} is not registered. Aborting removal.");
26+
return;
27+
}
28+
29+
listeners.Remove(listener);
30+
}
31+
32+
public void RiseEvent(bool arg1) //Type1 arg1, Type2 arg2, Type3 arg3...
33+
{
34+
foreach(var listener in listeners)
35+
{
36+
listener.RiseEvent(arg1); //arg1, arg2, arg3...
37+
}
38+
}
39+
}

Runtime/SOBaseEvents/BooleanEventScriptableObject.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
using UnityEngine;
2+
using UnityEngine.Events;
3+
4+
public class FloatEventListener : MonoBehaviour
5+
{
6+
[System.Serializable]
7+
public class CustomUnityEvent : UnityEvent<float> { } //ARGUMENT_TYPE_LIST -> Type1, Type2, Type3...
8+
9+
[SerializeField] private FloatEventScriptableObject FloatEventScriptableObject;
10+
[SerializeField] private CustomUnityEvent response;
11+
12+
void OnEnable()
13+
{
14+
FloatEventScriptableObject.AddListener(this);
15+
}
16+
17+
void OnDisable()
18+
{
19+
FloatEventScriptableObject.RemoveListener(this);
20+
}
21+
22+
public void RiseEvent(float arg1) //Type1 arg1, Type2 arg2, Type3 arg3...
23+
{
24+
response.Invoke(arg1); //arg1, arg2, arg3...
25+
}
26+
}

Runtime/SOBaseEvents/FloatEventListener.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
using System.Collections.Generic;
2+
using UnityEngine;
3+
4+
[CreateAssetMenu(fileName ="FloatEventScriptableObject", menuName ="EspidiGames/SO Events/FloatEventScriptableObject", order = 20)]
5+
public class FloatEventScriptableObject : ScriptableObject
6+
{
7+
private List<FloatEventListener> listeners = new List<FloatEventListener>();
8+
9+
10+
public void AddListener(FloatEventListener listener)
11+
{
12+
if (listeners.Contains(listener))
13+
{
14+
Debug.LogError($"[ScriptableObjectEvents] Listener {listener.name} of GameObject {listener.gameObject.name} already registered. Aborting registration.");
15+
return;
16+
}
17+
18+
listeners.Add(listener);
19+
}
20+
21+
public void RemoveListener(FloatEventListener listener)
22+
{
23+
if (!listeners.Contains(listener))
24+
{
25+
Debug.LogError($"[ScriptableObjectEvents] Listener {listener.name} of GameObject {listener.gameObject.name} is not registered. Aborting removal.");
26+
return;
27+
}
28+
29+
listeners.Remove(listener);
30+
}
31+
32+
public void RiseEvent(float arg1) //Type1 arg1, Type2 arg2, Type3 arg3...
33+
{
34+
foreach(var listener in listeners)
35+
{
36+
listener.RiseEvent(arg1); //arg1, arg2, arg3...
37+
}
38+
}
39+
}

Runtime/SOBaseEvents/FloatEventScriptableObject.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
using UnityEngine;
2+
using UnityEngine.Events;
3+
4+
public class IntEventListener : MonoBehaviour
5+
{
6+
[System.Serializable]
7+
public class CustomUnityEvent : UnityEvent<int> { } //ARGUMENT_TYPE_LIST -> Type1, Type2, Type3...
8+
9+
[SerializeField] private IntEventScriptableObject IntEventScriptableObject;
10+
[SerializeField] private CustomUnityEvent response;
11+
12+
void OnEnable()
13+
{
14+
IntEventScriptableObject.AddListener(this);
15+
}
16+
17+
void OnDisable()
18+
{
19+
IntEventScriptableObject.RemoveListener(this);
20+
}
21+
22+
public void RiseEvent(int arg1) //Type1 arg1, Type2 arg2, Type3 arg3...
23+
{
24+
response.Invoke(arg1); //arg1, arg2, arg3...
25+
}
26+
}

0 commit comments

Comments
 (0)