/* * @Author: 白哉 * @Description: * @Date: 2025年09月18日 星期四 14:09:13 * @Modify: */ using TH1_Logic.Core; using TH1_Logic.Net; using UnityEngine; namespace TH1_Logic.Steam { public class SteamGUIMono : MonoBehaviour { public bool EnableDebugLog = true; private Vector2 _scrollPosition = Vector2.zero; // 添加滚动位置变量 #if UNITY_EDITOR || USE_INPUT public void Update() { if (Input.GetKeyDown(KeyCode.F3)) { EnableDebugLog = !EnableDebugLog; } } private void OnGUI() { if (!EnableDebugLog) return; var lobby = LobbyManager.Instance.Lobby as SteamLobbyManager; if (lobby == null) return; GUILayout.BeginArea(new Rect(10, 10, 320, 400)); // 稍微加宽以容纳滚动条 GUILayout.BeginVertical("box"); // 开始滚动视图 _scrollPosition = GUILayout.BeginScrollView(_scrollPosition, GUILayout.Width(300), GUILayout.Height(380)); GUILayout.Label("Steam 测试状态", GUI.skin.label); GUILayout.Label($"Steam初始化: {(lobby.IsSteamInitialized ? "✓" : "✗")}"); GUILayout.Label($"用户登录: {(lobby.IsloggedIn ? "✓" : "✗")}"); GUILayout.Label($"Lobby 初始化: {(lobby.IsLobbyInitialized ? "✓" : "✗")}"); GUILayout.Label($"P2P 初始化: {(SimpleP2P.Instance.IsInitialized ? "✓" : "✗")}"); GUILayout.Label($"是否全部初始化完毕: {(lobby.IsInitialized() ? "✓" : "✗")}"); GUILayout.Label($"用户: {lobby.SelfName}"); GUILayout.Label($"ID: {lobby.SelfID}"); GUILayout.Space(10); GUILayout.Label("房间状态", GUI.skin.label); GUILayout.Label($"当前状态: {lobby.GetCurState()}"); GUILayout.Label($"在房间中: {(lobby.IsInLobby() ? "✓" : "✗")}"); GUILayout.Label($"是房主: {(lobby.IsLobbyOwner() ? "✓" : "✗")}"); if (lobby.IsInitialized() && lobby.IsInLobby()) { GUILayout.Label($"房间ID: {lobby.GetCurState()}"); GUILayout.Label($"成员数: {lobby.GetMemberCount()}/{lobby.GetMemberLimit()}"); GUILayout.Label($"P2P连接数: {SimpleP2P.Instance.GetConnectionCount()}"); if (lobby.IsLobbyOwner()) { foreach (var kv in lobby.GetAllMemberInfo()) { GUILayout.BeginHorizontal(); GUILayout.Label($"{kv.Value.Name}"); if (GUILayout.Button("踢出")) { lobby.KickMember(kv.Key); } GUILayout.EndHorizontal(); } } } if (lobby.IsInitialized()) { // 房间操作按钮 if (!lobby.IsInLobby()) { if (GUILayout.Button("创建房间")) { lobby.CreateLobby(); } } else { if (GUILayout.Button("离开房间")) { lobby.LeaveLobby(); } if (GUILayout.Button("测试")) { GameNetSender.Instance.BroadcastString("testtesttest"); } } if (lobby.IsInLobby()) { GUILayout.Space(10); // 好友操作 GUILayout.Label($"好友列表", GUI.skin.label); var friends = lobby.GetOnlineFriendsDict(); foreach (var kv in friends) { GUILayout.BeginHorizontal(); GUILayout.Label($"{kv.Value.Name}"); if (GUILayout.Button("邀请")) { lobby.InviteFriend(kv.Key); } GUILayout.EndHorizontal(); } } var selfMemberId = LobbyManager.Instance.Lobby.GetSelfMemberId(); var civ = Main.Instance.MapConfig.GetMemberCiv(selfMemberId); if (civ != null) { Main.Instance.MapConfig.GetPlayerInfoByIndex(civ.PlayerInfoIndex, out var info); GUILayout.BeginHorizontal(); GUILayout.Label($"Idx:{civ.PlayerInfoIndex} Civ:{info?.CivId ?? 0} Force:{info?.ForceId ?? 0}"); if (GUILayout.Button("改Idx0")) { civ.PlayerInfoIndex = 0; Main.Instance.MapConfig.UpdateMemberCiv(civ); } if (GUILayout.Button("改Idx1")) { civ.PlayerInfoIndex = 1; Main.Instance.MapConfig.UpdateMemberCiv(civ); } if (GUILayout.Button("改Idx2")) { civ.PlayerInfoIndex = 2; Main.Instance.MapConfig.UpdateMemberCiv(civ); } if (GUILayout.Button("改Idx3")) { civ.PlayerInfoIndex = 3; Main.Instance.MapConfig.UpdateMemberCiv(civ); } GUILayout.EndHorizontal(); } } // 结束滚动视图 GUILayout.EndScrollView(); GUILayout.EndVertical(); GUILayout.EndArea(); } #endif } }