Example #1
0
        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);
        }
    }