144 lines
5.5 KiB
C#

/*
* @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
}
}