using System; using System.Collections; using UnityEngine; using UnityEngine.SceneManagement; public class LoadMapMgr : MonoBehaviourSingletonTemplate { public string LoadSceneName, LoadMapPrefab; GameObject go_map; Camera[] arr_viewCam; MapData m_MapData; protected override void Awake() { base.Awake(); AddrResourceMgr.Ins.LoadObject(LoadMapPrefab, handle => { go_map = DSUtil.Get_Clone(handle.Result); AddrResourceMgr.Ins.Set_AddressableReleaseSelf(go_map); SceneManager.MoveGameObjectToScene(go_map, SceneManager.GetSceneByName(LoadSceneName)); m_MapData = go_map.GetComponent(); }); } public void Get_PortalPos(ChoiceMapData data, Action action) { StartCoroutine(Co_Get_PortalPos(data, action)); } IEnumerator Co_Get_PortalPos(ChoiceMapData data, Action action) { while (DSUtil.CheckNull(m_MapData)) yield return null; action(m_MapData.Get_MapZoneData(data.n_PortalIndex).go_portal.transform.position + Vector3.forward); } public Vector3 Get_ReincanationPos(ChoiceMapData data) { return m_MapData.Get_MapZoneData(data.n_PortalIndex).go_reincarnation.transform.position + Vector3.forward; } public void Get_tfFarmer(ChoiceMapData data, Action action) { StartCoroutine(Co_Get_tfFarmer(data, action)); } IEnumerator Co_Get_tfFarmer(ChoiceMapData data, Action action) { while (DSUtil.CheckNull(m_MapData)) yield return null; action(m_MapData.Get_MapZoneData(data.n_PortalIndex).tf_Farmer); } public void Get_tfObj(ChoiceMapData data, int index, Action action) { StartCoroutine(Co_Get_tfObj(data, index, action)); } IEnumerator Co_Get_tfObj(ChoiceMapData data, int index, Action action) { while (DSUtil.CheckNull(m_MapData)) yield return null; action(m_MapData.Get_MapZoneData(data.n_PortalIndex).tf_Obj[index]); } public void SetActive_Map(bool _active) { go_map.SetActive(_active); } public Camera Get_ViewCamera(string _name) { if (arr_viewCam == null) arr_viewCam = go_map.GetComponentsInChildren(); for (int i = 0; i < arr_viewCam.Length; i++) { if (arr_viewCam[i].name.Equals(_name)) return arr_viewCam[i]; } return null; } }