Scriptable Data & Events

This commit is contained in:
max
2021-12-22 12:53:49 +01:00
parent be3af5cba7
commit 10d751c21e
57 changed files with 746 additions and 146 deletions

View File

@ -1,5 +0,0 @@
using UnityEngine;
namespace COMPANYNAME.PACKAGENAME
{
}

255
Runtime/ScriptableData.cs Normal file
View File

@ -0,0 +1,255 @@
using System;
using UnityEngine;
namespace ScriptableData
{
public class ScriptableData<T0> : ScriptableObject
{
public event Action<T0> OnValueChangedEvent;
private T0 _value;
public T0 Value
{
get
{
return _value;
}
set
{
_value = value;
OnValueChangedEvent?.Invoke(_value);
}
}
public void SetWithoutNotify(T0 value)
{
_value = value;
}
public void Invoke(T0 value)
{
_value = value;
OnValueChangedEvent?.Invoke(value);
}
}
public class ScriptableData<T0, T1> : ScriptableObject
{
public event Action<T0, T1> OnValueChangedEvent;
private T0 _value;
public T0 Value
{
get
{
return _value;
}
set
{
_value = value;
OnValueChangedEvent?.Invoke(_value, _value1);
}
}
private T1 _value1;
public T1 Value1
{
get
{
return _value1;
}
set
{
_value1 = value;
OnValueChangedEvent?.Invoke(_value, _value1);
}
}
public void SetWithoutNotify(T0 value)
{
_value = value;
}
public void SetWithoutNotify(T0 value, T1 value1)
{
_value = value;
_value1 = value1;
}
public void Invoke(T0 value, T1 value1)
{
Value = value;
Value1 = value1;
OnValueChangedEvent?.Invoke(value, value1);
}
}
public class ScriptableData<T0, T1, T2> : ScriptableObject
{
public event Action<T0, T1, T2> OnValueChangedEvent;
private T0 _value;
public T0 Value
{
get
{
return _value;
}
set
{
_value = value;
OnValueChangedEvent?.Invoke(_value, _value1, _value2);
}
}
private T1 _value1;
public T1 Value1
{
get
{
return _value1;
}
set
{
_value1 = value;
OnValueChangedEvent?.Invoke(_value, _value1, _value2);
}
}
private T2 _value2;
public T2 Value2
{
get
{
return _value2;
}
set
{
_value2 = value;
OnValueChangedEvent?.Invoke(_value, _value1, _value2);
}
}
public void SetWithoutNotify(T0 value)
{
_value = value;
}
public void SetWithoutNotify(T0 value, T1 value1)
{
_value = value;
_value1 = value1;
}
public void SetWithoutNotify(T0 value, T1 value1, T2 value2)
{
_value = value;
_value1 = value1;
_value2 = value2;
}
public void Invoke(T0 value, T1 value1, T2 value2)
{
Value = value;
Value1 = value1;
Value2 = value2;
OnValueChangedEvent?.Invoke(value, value1, value2);
}
}
public class ScriptableData<T0, T1, T2, T3> : ScriptableObject
{
public event Action<T0, T1, T2, T3> OnValueChangedEvent;
private T0 _value;
public T0 Value
{
get
{
return _value;
}
set
{
_value = value;
OnValueChangedEvent?.Invoke(_value, _value1, _value2, _value3);
}
}
private T1 _value1;
public T1 Value1
{
get
{
return _value1;
}
set
{
_value1 = value;
OnValueChangedEvent?.Invoke(_value, _value1, _value2, _value3);
}
}
private T2 _value2;
public T2 Value2
{
get
{
return _value2;
}
set
{
_value2 = value;
OnValueChangedEvent?.Invoke(_value, _value1, _value2, _value3);
}
}
private T3 _value3;
public T3 Value3
{
get
{
return _value3;
}
set
{
_value3 = value;
OnValueChangedEvent?.Invoke(_value, _value1, _value2, _value3);
}
}
public void SetWithoutNotify(T0 value)
{
_value = value;
}
public void SetWithoutNotify(T0 value, T1 value1)
{
_value = value;
_value1 = value1;
}
public void SetWithoutNotify(T0 value, T1 value1, T2 value2)
{
_value = value;
_value1 = value1;
_value2 = value2;
}
public void SetWithoutNotify(T0 value, T1 value1, T2 value2, T3 value3)
{
_value = value;
_value1 = value1;
_value2 = value2;
_value3 = value3;
}
public void Invoke(T0 value, T1 value1, T2 value2, T3 value3)
{
Value = value;
Value1 = value1;
Value2 = value2;
Value3 = value3;
OnValueChangedEvent?.Invoke(value, value1, value2, value3);
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: db3264973431f63458697af52994bf57
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,56 @@
using System;
using UnityEngine;
namespace ScriptableData
{
[CreateAssetMenu(menuName = "ScriptableData/Event/Event", order = 147)]
public class ScriptableEvent : ScriptableObject
{
public event Action OnScriptableEvent;
public void Invoke()
{
OnScriptableEvent?.Invoke();
}
}
public class ScriptableEvent<T0> : ScriptableObject
{
public event Action<T0> OnScriptableEvent;
public void Invoke(T0 value)
{
OnScriptableEvent?.Invoke(value);
}
}
public class ScriptableEvent<T0, T1> : ScriptableObject
{
public event Action<T0, T1> OnScriptableEvent;
public void Invoke(T0 value, T1 value1)
{
OnScriptableEvent?.Invoke(value, value1);
}
}
public class ScriptableEvent<T0, T1, T2> : ScriptableObject
{
public event Action<T0, T1, T2> OnScriptableEvent;
public void Invoke(T0 value, T1 value1, T2 value2)
{
OnScriptableEvent?.Invoke(value, value1, value2);
}
}
public class ScriptableEvent<T0, T1, T2, T3> : ScriptableObject
{
public event Action<T0, T1, T2, T3> OnScriptableEvent;
public void Invoke(T0 value, T1 value1, T2 value2, T3 value3)
{
OnScriptableEvent?.Invoke(value, value1, value2, value3);
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 19a385034782e5145827449109c29d63
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,5 +1,6 @@
{
"name": "COMPANYNAME.PACKAGENAME",
"name": "VertexColor.ScriptableData",
"rootNamespace": "ScriptableData",
"references": [],
"includePlatforms": [],
"excludePlatforms": [],
@ -8,5 +9,6 @@
"precompiledReferences": [],
"autoReferenced": true,
"defineConstraints": [],
"versionDefines": []
"versionDefines": [],
"noEngineReferences": false
}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: bd2fa452e376b7e4e8356eed741e5eea
AssemblyDefinitionImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant: