GameEventInitializer

https://github.com/VMware233/VMFramework/blob/main/Assets/VMFramework/Main/GameEvents/Initializer/GameEventInitializer.cs
using System;
using System.Collections.Generic;
using UnityEngine.Scripting;
using VMFramework.GameLogicArchitecture;
using VMFramework.Procedure;

namespace VMFramework.GameEvents
{
    [GameInitializerRegister(GameInitializationDoneProcedure.ID, ProcedureLoadingType.OnEnter)]
    [Preserve]
    public sealed class GameEventInitializer : IGameInitializer
    {
        void IInitializer.GetInitializationActions(ICollection<InitializationAction> actions)
        {
            actions.Add(new(InitializationOrder.Init, OnInit, this));
        }

        private static void OnInit(Action onDone)
        {
            foreach (var gameEventConfig in GamePrefabManager.GetAllActiveGamePrefabs<IGameEventConfig>())
            {
                var gameEvent = GameItemManager.Get<IGameEvent>(gameEventConfig.id);
                GameEventManager.Register(gameEvent);
            }
            
            onDone();
        }
    }
}

最后更新于

这有帮助吗?