Compare commits
5 Commits
a0d1386712
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8b5e3c33d2 | ||
|
|
079716cc85 | ||
|
|
04337028b3 | ||
|
|
6b9910486b | ||
|
|
c320a07370 |
@@ -3,6 +3,7 @@ using MultiplayerBasicExample;
|
||||
using Steamworks;
|
||||
using UnityEngine;
|
||||
using stick.plugins.playermanager.Recorder;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace stick.plugins.playermanager.Gui;
|
||||
|
||||
@@ -30,6 +31,11 @@ public static class PlayerManagerGUI
|
||||
/// </summary>
|
||||
private static readonly LayoutCursor Cursor = new();
|
||||
|
||||
/// <summary>
|
||||
/// 记录该行widget是否该绘制
|
||||
/// </summary>
|
||||
private static readonly HashSet<IPlayerRowWidget> IgnoreWidgets = [];
|
||||
|
||||
#endregion
|
||||
|
||||
#region 主绘制方法
|
||||
@@ -89,10 +95,29 @@ public static class PlayerManagerGUI
|
||||
Cursor.EndRow();
|
||||
}
|
||||
|
||||
// 玩家行区域:每玩家一行,行内横向迭代注册的 PlayerRowWidget
|
||||
for (int i = 0; i < PlayerManager.lobbyMemberList.Count; i++)
|
||||
|
||||
IgnoreWidgets.Clear();
|
||||
// 如果一个widget对所有玩家都不需要绘制,则忽略
|
||||
foreach (var widget in RegisterManager.PlayerRowWidgets)
|
||||
{
|
||||
bool shouldDraw = false;
|
||||
foreach (var member in PlayerManager.lobbyMemberList)
|
||||
{
|
||||
if (!member.SteamId.IsValid()) continue;
|
||||
if (widget.ShouldDraw(member))
|
||||
{
|
||||
shouldDraw = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!shouldDraw)
|
||||
IgnoreWidgets.Add(widget);
|
||||
}
|
||||
|
||||
// 玩家行区域:每玩家一行,行内横向迭代注册的 PlayerRowWidget
|
||||
foreach (var member in PlayerManager.lobbyMemberList)
|
||||
{
|
||||
PlayerInfo member = PlayerManager.lobbyMemberList[i];
|
||||
if (!member.SteamId.IsValid()) continue;
|
||||
|
||||
Cursor.BeginRow();
|
||||
@@ -101,7 +126,8 @@ public static class PlayerManagerGUI
|
||||
if (widget.ShouldDraw(member))
|
||||
widget.Draw(Cursor.NextColumn(widget.Width, 40f), member);
|
||||
else
|
||||
Cursor.NextColumn(widget.Width, 40f); // 占位推进列位置
|
||||
if (!IgnoreWidgets.Contains(widget))
|
||||
Cursor.NextColumn(widget.Width, 40f); // 占位推进列位置对齐
|
||||
}
|
||||
Cursor.EndRow();
|
||||
}
|
||||
|
||||
@@ -338,6 +338,7 @@ public class PlayerManager : BaseUnityPlugin
|
||||
else
|
||||
{
|
||||
RequestLobbyList();
|
||||
OnLobbyMembersChanged();
|
||||
PlayerManagerGUI.ShowLobbyInfo = true;
|
||||
Debug.Log("大厅信息界面已打开");
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
## 功能
|
||||
|
||||
- 房间查找
|
||||
- 转让房主
|
||||
- 玩家记录
|
||||
- 被记录的玩家显示为黄名
|
||||
- 是steam好友的玩家显示为绿名(优先级更高)
|
||||
@@ -23,6 +24,11 @@
|
||||
|
||||
## 更新日志
|
||||
|
||||
### v4.0.8
|
||||
|
||||
1. 添加了转让房主功能
|
||||
2. 现在如果某个按钮(行组件)对所有人都不显示,则不留空
|
||||
|
||||
### v4.0.7
|
||||
|
||||
1. 现在点击大厅列表中的按钮进入大厅会在列表中将该大厅用灰色样式标识,标记已进入过
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<TargetFramework>net35</TargetFramework>
|
||||
<AssemblyName>stick.plugins.playermanager</AssemblyName>
|
||||
<Product>PlayerManager</Product>
|
||||
<Version>4.0.7</Version>
|
||||
<Version>4.0.8</Version>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<LangVersion>latest</LangVersion>
|
||||
<RestoreAdditionalProjectSources>
|
||||
|
||||
Reference in New Issue
Block a user