using System.Collections; using System.Collections.Generic; using UnityEngine; using System; public class CreateRoleManager : Singleton { CreateRoleProcessor m_Processor; CreateRoleProcessor processor { get { return m_Processor ?? (m_Processor = GameObject.FindObjectOfType()); } } Dictionary jobModels = new Dictionary(); public readonly LogicInt selectedJob = new LogicInt(); public void StarShow() { selectedJob.value = 1; processor.LoadNecessaryResources(); processor.DoEnterShow(); } public void View(int job) { selectedJob.value = job; switch (job) { case 1: processor.SwitchToWarrior(); break; case 2: processor.SwitchToMagic(); break; } } public void Dispose() { m_Processor.Dispose(); m_Processor = null; jobModels.Clear(); if (!AssetSource.mobFromEditor) { AssetBundleUtility.Instance.UnloadAssetBundle("mob/createrole", true, false); } } public void LoadModel(int job, Action _callBack) { if (jobModels.ContainsKey(job)) { if (_callBack != null) { _callBack(true, jobModels[job]); } return; } Action assetCallBack = (bool _ok, UnityEngine.Object _asset) => { GameObject instance = null; if (_ok) { instance = GameObject.Instantiate(_asset) as GameObject; if (instance != null) { jobModels[job] = instance; } } if (_callBack != null) { _callBack(_ok && instance != null, instance); } }; InstanceResourcesLoader.LoadCreateRole(job, assetCallBack); } public void ReleaseModel(int job) { if (jobModels.ContainsKey(job)) { jobModels[job].gameObject.SetActive(false); } } }