Beispiel #1
0
        /// <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);
        }