Пример #1
0
        public void Activate()
        {
            mView.Build();

            if (mMotionMgr != null)
            {
                mMotionMgr.FreezePhySteateForSystem(false);
            }

            Entity.SendMsg(EMsg.Lod_Collider_Created);
        }
Пример #2
0
        public void StartLoadScene()
        {
            for (int i = 0; i < 100; i++)
            {
                PeLauncher.Instance.Add(new GameLoader.Dummy());
            }
            bFirstRun = true;
            PeLauncher.Instance.endLaunch = delegate()
            {
                if (PeGameMgr.IsMulti && !NetworkInterface.IsClient)
                {
                    return(true);
                }

                if (bFirstRun)
                {
                    bFirstRun = false;
                    VFVoxelTerrain.TerrainVoxelComplete = false;
                    return(false);
                }
                if (!VFVoxelTerrain.TerrainVoxelComplete)
                {
                    return(false);
                }

                PeEntity mainPlayer = MainPlayer.Instance.entity;
                if (null == mainPlayer)
                {
                    return(false);
                }

                MotionMgrCmpt motion = mainPlayer.GetCmpt <MotionMgrCmpt>();
                if (motion == null)
                {
                    return(false);
                }
                Vector3 safePos;
                if (PeGameMgr.IsMulti)
                {
                    if (PlayerNetwork.mainPlayer != null && PlayerNetwork.mainPlayer._curSceneId == (int)Pathea.SingleGameStory.StoryScene.MainLand)
                    {
                        if (PETools.PE.FindHumanSafePos(mainPlayer.position, out safePos, 10))
                        {
                            mainPlayer.position = safePos;
                            motion.FreezePhySteateForSystem(false);
                        }
                        else
                        {
                            mainPlayer.position += 10 * Vector3.up;
                            motion.FreezePhySteateForSystem(true);
                            return(false);
                        }
                    }
                }
                else
                {
                    if (PETools.PE.FindHumanSafePos(mainPlayer.position, out safePos, 10))
                    {
                        mainPlayer.position = safePos;
                        motion.FreezePhySteateForSystem(false);
                    }
                    else
                    {
                        mainPlayer.position += 10 * Vector3.up;
                        motion.FreezePhySteateForSystem(true);
                        return(false);
                    }
                }

                Object.Destroy(gameObject);
                Resources.UnloadUnusedAssets();
                System.GC.Collect();
                return(true);
            };

            PeLauncher.Instance.StartLoad();
        }