PIE: viewport-embedded playback with UE-style main toolbar
Play no longer switches to fullscreen direct rendering: PIE now keeps the editor UI alive and renders the primary camera into the Viewport panel (new SceneRenderer::SetGameView flag; kDisplayDirect stays a manual fullscreen preview for later release form). Editor camera stops being driven during PIE, and viewport click-pick is gated off while playing (clicks are game input now). The Play/Stop buttons move out of the menu bar into a dedicated main toolbar row below it (centered, UE Main Toolbar semantics): green Play when idle; Pause (yellow, highlighted while paused) + Stop (orange) while playing. Ctrl+P hotkey kept. Stats "Pause Simulation" merged into the toolbar Pause; viewport overlay shows PAUSED accordingly.
This commit is contained in:
@@ -142,6 +142,7 @@ namespace Engine {
|
||||
// ---- 显示模式(Editor 视口 ↔ 全屏直出;帧首同步生效)----
|
||||
int GetDisplayMode() const { return m_DesiredDisplayMode; }
|
||||
void SetDisplayMode(int mode); // cpp 内定义(SceneRenderer 前置声明)
|
||||
void SetGameView(bool gameView); // PIE 内嵌播放(cpp 转发 SceneRenderer)
|
||||
// 编辑器相机(Scene view 恒用,与场景相机实体无关)。转发
|
||||
// SceneRenderer 持有的实例:Application 驱动 Update,面板读写位姿
|
||||
EditorCamera& GetEditorCamera(); // cpp 内定义(SceneRenderer 完整类型)
|
||||
|
||||
@@ -66,6 +66,10 @@ namespace Engine {
|
||||
void SetLodEnabled(bool b) { m_LodEnabled = b; }
|
||||
void SetDebugView(int v) { m_DebugView = v; }
|
||||
void SetDisplayMode(int m) { m_DisplayMode = m; } // kDisplayDirect / kDisplayViewport
|
||||
// PIE 内嵌播放(UE Play-In-Editor 语义):viewport 模式下也用
|
||||
// primary 相机渲染进 sceneTex(Play 后 Scene view 显示游戏画面,
|
||||
// 编辑器 UI 保持可用)。kDisplayDirect 恒为游戏形态不受此影响
|
||||
void SetGameView(bool g) { m_GameView = g; }
|
||||
// 编辑器相机(视口 UI 状态,SceneRenderer 持有 = 渲染源在此分派);
|
||||
// Application 驱动 Update,ViewportPanel/Inspector 经 Renderer 门面访问
|
||||
EditorCamera& GetEditorCamera() { return m_EditorCamera; }
|
||||
@@ -171,6 +175,7 @@ namespace Engine {
|
||||
bool m_LodEnabled = true; // 关 = 全部强制 LOD0(选级跳过)
|
||||
int m_DebugView = 0;
|
||||
int m_DisplayMode = kDisplayViewport; // Editor 视口为默认形态
|
||||
bool m_GameView = false; // PIE 内嵌播放(Editor Play/Stop 驱动)
|
||||
};
|
||||
|
||||
} // namespace Engine
|
||||
|
||||
Reference in New Issue
Block a user