Init(args)
Scripting Reference
Loading...
Searching...
No Matches
Sisus.Init.ScriptableObjectInitializerBase< TClient, TFirstArgument, TSecondArgument, TThirdArgument, TFourthArgument, TFifthArgument, TSixthArgument > Class Template Referenceabstract

Description

A base class for an initializer that can be used to specify the six arguments used to initialize a scriptable object that implements IInitializable<TFirstArgument, TSecondArgument, TThirdArgument, TFourthArgument, TFifthArgument, TSixthArgument>.

The arguments can be assigned using the inspector and are serialized as a sub-asset of the client scriptable object.

The arguments get injected to the TClient client during the client's Awake event, or when services become ready (whichever occurs later).

The client receives the arguments via the Init method where it can assign them to member fields and properties.

When you derive your initializer class from ScriptableObjectInitializerBase<,,,,,,> you are responsible for implementing the argument properties and serializing their values. This means you will need to write a little bit more code, but it also grants you more options in how to handle the serialization, making it possible to support types that Unity can't serialize automatically. If you derive from ScriptableObjectInitializer<,,,,,,> instead, then these things will be handled for you.

Template Parameters
TClientType of the initialized scriptable object.
TFirstArgumentType of the first argument to pass to the client's Init function.
TSecondArgumentType of the second argument to pass to the client's Init function.
TThirdArgumentType of the third argument to pass to the client's Init function.
TFourthArgumentType of the fourth argument to pass to the client's Init function.
TFifthArgumentType of the fifth argument to pass to the client's Init function.
TSixthArgumentType of the sixth argument to pass to the client's Init function.
Type Constraints
TClient :ScriptableObject 
TClient :IInitializable 
TClient :TFirstArgument 
TClient :TSecondArgument 
TClient :TThirdArgument 
TClient :TFourthArgument 
TClient :TFifthArgument 
TClient :TSixthArgument 
Inheritance diagram for Sisus.Init.ScriptableObjectInitializerBase< TClient, TFirstArgument, TSecondArgument, TThirdArgument, TFourthArgument, TFifthArgument, TSixthArgument >:
Sisus.Init.IInitializer< TClient, TFirstArgument, TSecondArgument, TThirdArgument, TFourthArgument, TFifthArgument, TSixthArgument > Sisus.Init.IInitializer< TClient > Sisus.Init.IValueProvider< TValue > Sisus.Init.IValueByTypeProvider Sisus.Init.IInitializer< TClient > Sisus.Init.IInitializer Sisus.Init.IValueProvider Sisus.Init.IInitializer Sisus.Init.ScriptableObjectInitializer< TClient, TFirstArgument, TSecondArgument, TThirdArgument, TFourthArgument, TFifthArgument, TSixthArgument >

Protected Member Functions

override TClient InitTarget ([AllowNull] TClient target)
 
virtual void OnReset (ref TFirstArgument firstArgument, ref TSecondArgument secondArgument, ref TThirdArgument thirdArgument, ref TFourthArgument fourthArgument, ref TFifthArgument fifthArgument, ref TSixthArgument sixthArgument)
 Resets the Init arguments to their default values.
 

Properties

TFirstArgument FirstArgument [get, set]
 The first argument passed to the TClient client's Init function.
 
TSecondArgument SecondArgument [get, set]
 The second argument passed to the TClient client's Init function.
 
TThirdArgument ThirdArgument [get, set]
 The third argument passed to the TClient client's Init function.
 
TFourthArgument FourthArgument [get, set]
 The fourth argument passed to the TClient client's Init function.
 
TFifthArgument FifthArgument [get, set]
 The fifth argument passed to the TClient client's Init function.
 
TSixthArgument SixthArgument [get, set]
 The sixth argument passed to the TClient client's Init function.
 
- Properties inherited from Sisus.Init.IInitializer
Object Target [get, set]
 Existing target instance to initialize, if any.
 
bool ProvidesCustomInitArguments [get]
 Gets a value indicating whether this initializer is able to provide custom per-instance Init arguments for its client.
 

Additional Inherited Members

- Public Member Functions inherited from Sisus.Init.IInitializer< TClient >
new TClient InitTarget ()
 Initializes the client object of type TClient with the arguments specified by this initializer.
 
new System.Threading.Tasks.Task< TClient > InitTargetAsync ()
 Initializes the client object of type TClient asynchronously with the arguments specified by this initializer.
 
- Public Member Functions inherited from Sisus.Init.IInitializer
bool TargetIsAssignableOrConvertibleToType (Type type)
 Gets a value indicating whether an object of the given type can be assigned to the Target property directly, or if type implements IValueProvider<T>, IValueByTypeProvider or IValueByTypeProviderAsync.