ManagerBehaviourCreationInitializer

https://github.com/VMware233/VMFramework/blob/main/Assets/VMFramework/Main/Procedures/ManagerBehaviour/ManagerBehaviourCreationInitializer.cs
using System;
using System.Collections.Generic;
using UnityEngine.Scripting;

namespace VMFramework.Procedure
{
    /// <summary>
    /// Create the ManagerBehaviours in the very beginning of the game.
    /// </summary>
    [GameInitializerRegister(VMFrameworkInitializationDoneProcedure.ID, ProcedureLoadingType.OnEnter)]
    [Preserve]
    public sealed class ManagerBehaviourCreationInitializer : IGameInitializer
    {
        void IInitializer.GetInitializationActions(ICollection<InitializationAction> actions)
        {
            actions.Add(new(InitializationOrder.BeforeInitStart, OnBeforeInitStart, this));
        }

        private static void OnBeforeInitStart(Action onDone)
        {
            ManagerCreator.CreateManagers();

            foreach (var manager in ManagerCreator.Managers)
            {
                manager.SetInstance();
            }
            
            onDone();
        }
    }
}

最后更新于

这有帮助吗?