using System; using AlicizaX.Debugger.Runtime; using AlicizaX.Localization.Runtime; using AlicizaX.Resource.Runtime; using UnityEngine; namespace AlicizaX.Framework.Runtime.ABase { public class ModuleDynamicBind : MonoBehaviour { [SerializeField] private ResourceComponent _resourceComponent; [SerializeField] private DebuggerComponent _debuggerComponent; [SerializeField] private LocalizationComponent _localizationComponent; private ModuleDynamicBindInfo _dynamicBindInfo; private void OnValidate() { _resourceComponent = GetComponentInChildren(); _debuggerComponent = GetComponentInChildren(); _localizationComponent = GetComponentInChildren(); } private void Awake() { if (Application.isEditor) return; TextAsset text = Resources.Load("ModuleDynamicBindInfo"); _dynamicBindInfo = Utility.Json.ToObject(text.text); if (_resourceComponent != null) { _resourceComponent.SetPlayMode(_dynamicBindInfo.ResMode); } if (_debuggerComponent != null) { _debuggerComponent.SetActiveMode(_dynamicBindInfo.DebuggerActiveWindowType); } if (_localizationComponent != null) { _localizationComponent.SetLanguage(_dynamicBindInfo.Language); } } } public struct ModuleDynamicBindInfo { public DebuggerActiveWindowType DebuggerActiveWindowType; public int ResMode; public string Language; } }