144 lines
5.5 KiB
C#
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
|
|
}
|
|
}
|