using Framework; using UnityEditor; using UnityEngine; public class DisconnectDebugWindow : EditorWindow { [MenuItem("Tools/断线调试工具")] public static void ShowWindow() { var window = GetWindow("断线调试工具"); window.minSize = new Vector2(360f, 180f); window.Show(); } private void OnGUI() { GUILayout.Label("断线调试", EditorStyles.boldLabel); EditorGUILayout.HelpBox("用于在运行时模拟上行或下行断开。开关只对当前 Play 会话生效。", MessageType.Info); EditorGUI.BeginDisabledGroup(!EditorApplication.isPlaying); var blockUpstream = EditorGUILayout.Toggle("断上行", NetDebugOptions.BlockUpstream); if (blockUpstream != NetDebugOptions.BlockUpstream) { NetDebugOptions.SetBlockUpstream(blockUpstream); } var blockDownstream = EditorGUILayout.Toggle("断下行", NetDebugOptions.BlockDownstream); if (blockDownstream != NetDebugOptions.BlockDownstream) { NetDebugOptions.SetBlockDownstream(blockDownstream); } GUILayout.Space(8f); if (GUILayout.Button("恢复双向网络", GUILayout.Height(28f))) { NetDebugOptions.Reset(); } EditorGUI.EndDisabledGroup(); if (!EditorApplication.isPlaying) { EditorGUILayout.HelpBox("请先进入 Play 模式再操作这些开关。", MessageType.Warning); } } private void OnInspectorUpdate() { Repaint(); } }