void GetCamera() { if (camera == null) { string strCameraName = "MainCamera"; Engine.ICamera cam = Engine.RareEngine.Instance().GetRenderSystem().GetCamera(ref strCameraName); camera = cam.GetNode().GetTransForm().GetComponent <Camera>(); } }
public void SetupMainCamera(IPlayer player) { float fRotateX = 38.0f; float fRotateY = 45.0f; table.MapDataBase mapdb = null; IMapSystem mapSys = Client.ClientGlobal.Instance().GetMapSystem(); if (mapSys != null) { mapdb = GameTableManager.Instance.GetTableItem <table.MapDataBase>(mapSys.GetMapID()); if (mapdb != null) { fRotateX = mapdb.RotateX; fRotateY = mapdb.RotateY; } } // 发送事件 CreateEntity string strCameraName = "MainCamera"; Engine.ICamera cam = Engine.RareEngine.Instance().GetRenderSystem().GetCamera(ref strCameraName); if (cam != null) { CameraFollow.Instance.camera = cam; CameraFollow.Instance.target = player; CameraFollow.Instance.SetCameraOffset(fRotateX, fRotateY, isFarDisCamera ? mapdb.CamDis : mapdb.farDistance); cam.SetCameraCtrl(CameraFollow.Instance); } if (cam != null) { if (cam.GetNode().GetTransForm().gameObject.GetComponent <PostRenderOcclusionEffect>() == null) { //PostRenderOcclusionEffect pEffect = cam.GetNode().GetTransForm().gameObject.AddComponent<PostRenderOcclusionEffect>(); //SeeThroughSystem pEffect = cam.GetNode().GetTransForm().gameObject.AddComponent<SeeThroughSystem>(); } if (cam.GetNode().GetTransForm().gameObject.GetComponent <PostRenderOutlineEffect>() == null) { //PostRenderOutlineEffect pEffect = cam.GetNode().GetTransForm().gameObject.AddComponent<PostRenderOutlineEffect>(); //SeeThroughSystem pEffect = cam.GetNode().GetTransForm().gameObject.AddComponent<SeeThroughSystem>(); } } // 设置场景方向光参数 需要根据Camera来 Shader.SetGlobalColor("g_LightColor", Color.white); // 设置方向 Shader.SetGlobalVector("g_LightDirection", -GetMainCamDir()); }
//------------------------------------------------------------------------------------------------------- /** * @brief 用来处理游戏中退回到登录或者选人界面 或者地图时使用 * @param bFlag 标识是否清理主角 true清理主角 */ public void Clear(bool bFlag = false) { Engine.IRenderSystem renderSys = Engine.RareEngine.Instance().GetRenderSystem(); if (renderSys != null && bFlag) { // 设置主Camera string strCameraName = "MainCamera"; Engine.ICamera cam = renderSys.GetCamera(ref strCameraName); if (cam != null) { cam.Enable(false); } } // 停止背景音乐 Engine.IAudio audio = Engine.RareEngine.Instance().GetAudio(); if (audio != null && bFlag) { audio.StopMusic(); } if (bFlag) { CmdManager.Instance().Clear(); } if (m_ControllerSys != null) { m_ControllerSys.GetCombatRobot().Stop(true); } if (MainPlayer != null) { MainPlayer.SendMessage(EntityMessage.EntityCommand_StopMove, MainPlayer.GetPos()); } if (m_EntitySys != null) { m_EntitySys.Clear(bFlag); } if (m_MapSystem != null) { m_MapSystem.ExitMap(); } MainPlayer = null; Engine.RareEngine.Instance().UnloadUnusedResources(); }