@@ -69,10 +69,12 @@ public class SitPosData : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
// 玩家基础信息
// -------------------------
[Header("玩家信息")]
public string user ;
public TextMeshProUGUI tmp_UserNumber ;
public TextMeshProUGUI tmp_UserName ;
public Image img_Head ;
public string user ; //玩家唯一ID
public TextMeshProUGUI tmp_UserNumber ; //ID:玩家编号
public TextMeshProUGUI tmp_UserName ; //名字
public TextMeshProUGUI tmp_UserLevel ; //LV:等级
public Slider slider_UserLevelEXP ; //EXP:经验条
public Image img_Head ; //头像
public Image img_Vip ;
public List < GameObject > sprite_VipList ; //这里一共有11个正好对应0-10级vip
public List < GameObject > sprite_VipLevelBG ; //这里有5个 每两级对应一个0级用最基础的
@@ -978,14 +980,16 @@ public class SitPosData : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
/// <param name="avatar">头像名/URL(走 GameManager 头像缓存,找不到回退默认头像)</param>
/// <param name="vipLevel">VIP 等级 0~10</param>
/// <param name="userNumber">玩家编号(短ID,显示在 tmp_UserNumber;空则回退显示 userId) </param>
public void SetUserInfo ( string userId , string userName , string avatar , int vipLevel , string userNumber = null )
/// <param name="level">玩家等级(显示在 tmp_UserLevel) </param>
/// <param name="exp">玩家经验 0~1(显示在 slider_UserLevelEXP;后端暂未下发,先占位)</param>
public void SetUserInfo ( string userId , string userName , string avatar , int vipLevel , string userNumber = null , int level = 0 , float exp = 0f )
{
// 玩家 ID:优先显示后端下发的短编号 UserNumber,没有再用 userId
// 玩家 ID:优先显示后端下发的短编号 UserNumber,没有再用 userId。带 "ID:" 前缀
if ( tmp_UserNumber ! = null )
{
string displayId = string . IsNullOrEmpty ( userNumber ) ? userId : userNumber ;
if ( ! string . IsNullOrEmpty ( displayId ) )
tmp_UserNumber . text = displayId ;
tmp_UserNumber . text = "ID:" + displayId ;
}
// 昵称:非本人的名字打码(前2后2保留,中间***),自己原样显示
@@ -994,6 +998,14 @@ public class SitPosData : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
? userName
: MaskUserName ( userName ) ;
// 等级:带 "LV:" 前缀显示玩家等级
if ( tmp_UserLevel ! = null & & level > 0 )
tmp_UserLevel . text = "LV:" + level ;
// 经验条:exp 为 0~1 的进度值(后端经验值字段暂未下发,明天补充后直接生效)
if ( slider_UserLevelEXP ! = null )
slider_UserLevelEXP . value = Mathf . Clamp01 ( exp ) ;
// 头像:优先 GameManager 头像缓存(Resources/Avatar),查不到用默认头像
if ( img_Head ! = null )
{
@@ -1671,6 +1683,45 @@ public class SitPosData : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
WebSocketSendList . ChangeGunMultiple ( roomId , user , newConsume ) ;
}
/// <summary>
/// 非本地座位隐藏加减炮倍 UI( GameMainPanel 进房时对自己以外的座位调用):
/// - Normal:隐藏座位上的 btn_TurretAdd / btn_TurretMinus(未拖引用为 null 时跳过)
/// - XJMH:加减倍按钮适配在炮台上(TurretData.obj_Add / obj_Down),座位上没有按钮引用,
/// 把 XJMH 炮台列表里每把炮台的加减倍都隐藏(全部藏,之后切换炮台新炮台的也不会再显示)
/// </summary>
public void HideTurretAddMinusUI ( )
{
if ( btn_TurretAdd ! = null )
btn_TurretAdd . gameObject . SetActive ( false ) ;
if ( btn_TurretMinus ! = null )
btn_TurretMinus . gameObject . SetActive ( false ) ;
if ( turretControlMode ! = TurretControlMode . XJMH ) return ;
if ( xjmhTurretList ! = null & & xjmhTurretList . Count > 0 )
{
foreach ( var td in xjmhTurretList )
HideTurretAddDown ( td ) ;
}
else
{
// 兜底:列表未配置时扫 turretParent 子对象(与 SwitchTurretChild 回退一致)
Transform parent = turretParent ! = null ? turretParent : transform ;
for ( int i = 0 ; i < parent . childCount ; i + + )
HideTurretAddDown ( parent . GetChild ( i ) . GetComponent < TurretData > ( ) ) ;
}
}
/// <summary>隐藏一把 XJMH 炮台上的加减倍对象(obj_Add / obj_Down,未拖引用跳过)</summary>
private static void HideTurretAddDown ( TurretData td )
{
if ( td = = null ) return ;
if ( td . obj_Add ! = null )
td . obj_Add . SetActive ( false ) ;
if ( td . obj_Down ! = null )
td . obj_Down . SetActive ( false ) ;
}
public void ChangeTurretMinusConsumeNum ( )
{
// ⭐ paoBeiList 为从大到小排列:减号=更小的炮倍=更大的索引,到尾(最小档)回绕到头部(最大档)