mirror of
https://github.com/maxartz15/ScriptableData.git
synced 2024-11-21 05:45:35 +01:00
For ScriptableObject workflow.
Documentation~ | ||
Editor | ||
Runtime | ||
Samples~ | ||
.gitignore | ||
CHANGELOG.md | ||
CHANGELOG.md.meta | ||
Editor.meta | ||
LICENSE.md | ||
LICENSE.md.meta | ||
package.json | ||
package.json.meta | ||
README.md | ||
README.md.meta | ||
Runtime.meta | ||
THIRD PARTY NOTICES.md | ||
THIRD PARTY NOTICES.md.meta |
ScriptableData
Data
ScriptableData stores runtime data to be accessed by scripts that reference the ScriptableObject. It has a OnValueChangedEvent to subscribe when data changes. With this workflow you can remove dependencies and increase flexibility.
Extendable Data:
public class ScriptableData<T0> : ScriptableObject {}
public class ScriptableData<T0, T1> : ScriptableObject {}
public class ScriptableData<T0, T1, T2> : ScriptableObject {}
public class ScriptableData<T0, T1, T2, T3> : ScriptableObject {}
Example:
[CreateAssetMenu(menuName = "ScriptableData/Data/Vector3", order = 147)]
public class SDVector3 : ScriptableData<Vector3> {}
Events
ScriptableEvent does not contain any runtime data but can be used to send events (with data) around.
Base Event
[CreateAssetMenu(menuName = "ScriptableData/Event/Event", order = 147)]
public class ScriptableEvent : ScriptableObject {}
Extendable Events:
public class ScriptableEvent<T0> : ScriptableObject {}
public class ScriptableEvent<T0, T1> : ScriptableObject {}
public class ScriptableEvent<T0, T1, T2> : ScriptableObject {}
public class ScriptableEvent<T0, T1, T2, T3> : ScriptableObject {}
Example:
[CreateAssetMenu(menuName = "ScriptableData/Event/Vector3", order = 147)]
public class SEVector3 : ScriptableEvent<Vector3> {}
ExtendedScriptableObjectDrawer
If you don't want to use the extended drawer, use the [NonExpandable]
attribute.
Example:
[NonExpandable]
public SEVector3 myVector3;
Install
LICENSE
Overall package is licensed under MIT, unless otherwise noted in the 3rd party licenses file and/or source code.