/// <summary> /// Initializes the behaviour preparing it for runtime use. /// </summary> public void Initialize() { //Creates an empty instance of the TScriptComponentType //We do this behind a factory because this may not be a simple task and would emit Activator.CreateInstance //if done with new() _InternalSerializableComponent = EngineScriptComponentFactory.Create <TScriptComponentType>(); //this call should set all serialized values InitializeScriptComponentMemberValues(); isInitialized = true; }
public static void Test_EngineScriptComponentFactoryCreate_EngineScriptComponent() { //arrange EngineScriptComponent script = EngineScriptComponentFactory.Create <TestEngineScriptChild>(); EngineScriptComponent scriptBase = EngineScriptComponentFactory.Create <TestEngineScriptBase>(); //assert //first Assert.NotNull(script); Assert.IsInstanceOf <TestEngineScriptChild>(script); Assert.IsInstanceOf <TestEngineScriptBase>(script); //We have to make sure it gives us a proper one even if we've created and cached a similar one before //second Assert.NotNull(scriptBase); Assert.IsInstanceOf <TestEngineScriptBase>(scriptBase); Assert.IsNotInstanceOf <TestEngineScriptChild>(scriptBase); }