IEnumerator Coroutine_LoadTeleport(int levelId) { SceneTeleportInfo teleInfo = GameTable.SceneTeleportTableAsset.Lookup(CurRoomInfo.m_teleportData.objId); GameResPackage.AsyncLoadObjectData data = new GameResPackage.AsyncLoadObjectData(); IEnumerator e = PoolManager.Singleton.Coroutine_Load(GameData.GetPrefabPath(teleInfo.prefabName), data); while (true) { e.MoveNext(); if (data.m_isFinish) { break; } yield return(e.Current); } if (data.m_obj != null) { GameObject teleportObj = data.m_obj as GameObject; teleportObj.transform.parent = m_parentObj.transform; LevelTeleportDoor teleport = teleportObj.AddComponent <LevelTeleportDoor>(); teleport.LevelId = levelId; teleport.Target = CurRoomInfo.m_teleportData.target; teleportObj.transform.localPosition = new Vector3(CurRoomInfo.m_teleportData.position.x * blockHeight, 0f, CurRoomInfo.m_teleportData.position.z * blockHeight); CurRoomInfo.m_teleportData.outTelepotrObj = teleportObj; teleportObj.SetActive(true); } }
public void Load(byte[] bytes) { BinaryHelper helper = new BinaryHelper(bytes); int length = helper.ReadInt(); TeleportInfoList = new SortedList <int, SceneTeleportInfo>(length); for (int index = 0; index < length; index++) { SceneTeleportInfo info = new SceneTeleportInfo(); info.Load(helper); TeleportInfoList.Add(info.ID, info); } }