using System; using AlicizaX.Debugger.Runtime; using AlicizaX.Localization.Runtime; using AlicizaX.Resource.Runtime; using UnityEngine; using UnityEngine.Serialization; namespace AlicizaX { public class ModuleDynamicBind : MonoBehaviour { [FormerlySerializedAs("_resourceServiceBehaviour")] [SerializeField] private ResourceComponent resourceComponent; [FormerlySerializedAs("_debuggerServiceBehaviour")] [SerializeField] private DebuggerComponent debuggerComponent; [FormerlySerializedAs("_localizationServiceBehaviour")] [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); resourceComponent.SetDecryptionServices(_dynamicBindInfo.DecryptionServices); } 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; public string DecryptionServices; } }