好多新内容

This commit is contained in:
FloatGaming
2026-07-22 05:35:53 +08:00
parent b5d1cdcbc5
commit 15649d02f8
128 changed files with 5956 additions and 673 deletions
@@ -943,8 +943,10 @@ public class globalChatSystem : MonoBehaviour
playerMessagePrefab controller = instance.GetComponentInChildren<playerMessagePrefab>();
if (controller != null)
{
string titleId = !string.IsNullOrWhiteSpace(message.player_title_id) ? message.player_title_id : string.Empty;
string title = !string.IsNullOrWhiteSpace(message.player_title) ? message.player_title : string.Empty;
controller.Bind(senderSteamId, avatarUrl, displayName, title, message.content, bubbleColor);
PlayerTitleResolver.ResolvedTitle resolvedTitle = PlayerTitleResolver.Resolve(titleId, title);
controller.Bind(senderSteamId, avatarUrl, displayName, resolvedTitle.titleId, resolvedTitle.titleText, message.content, bubbleColor);
}
return instance;
@@ -0,0 +1,69 @@
using System;
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu(fileName = "PlayerTitleLibrary", menuName = "Bansonic/Player Title Library")]
public class PlayerTitleLibrary : ScriptableObject
{
[Serializable]
public class PlayerTitleEntry
{
public string titleId;
public Sprite titleSprite;
public string chineseName;
public string englishName;
}
[SerializeField] private List<PlayerTitleEntry> titles = new List<PlayerTitleEntry>();
private Dictionary<string, PlayerTitleEntry> lookup;
public bool TryGetTitle(string key, out PlayerTitleEntry entry)
{
EnsureLookup();
entry = null;
if (string.IsNullOrWhiteSpace(key))
{
return false;
}
return lookup.TryGetValue(NormalizeKey(key), out entry) && entry != null;
}
private void EnsureLookup()
{
if (lookup != null)
{
return;
}
lookup = new Dictionary<string, PlayerTitleEntry>(StringComparer.OrdinalIgnoreCase);
for (int i = 0; i < titles.Count; i++)
{
PlayerTitleEntry entry = titles[i];
if (entry == null)
{
continue;
}
AddLookup(entry.titleId, entry);
AddLookup(entry.chineseName, entry);
AddLookup(entry.englishName, entry);
}
}
private void AddLookup(string key, PlayerTitleEntry entry)
{
string normalized = NormalizeKey(key);
if (!string.IsNullOrEmpty(normalized) && !lookup.ContainsKey(normalized))
{
lookup.Add(normalized, entry);
}
}
private static string NormalizeKey(string key)
{
return string.IsNullOrWhiteSpace(key) ? string.Empty : key.Trim();
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: a77a5d11c6274a94bb16e9d477a17301
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,66 @@
using UnityEngine;
public static class PlayerTitleResolver
{
private const string PlayerTitleLibraryResourcePath = "so/player_titles/PlayerTitleLibrary";
private static PlayerTitleLibrary cachedTitleLibrary;
public readonly struct ResolvedTitle
{
public readonly string titleId;
public readonly string titleText;
public readonly Sprite titleSprite;
public bool HasSprite => titleSprite != null;
public bool HasText => !string.IsNullOrWhiteSpace(titleText);
public bool HasAny => HasSprite || HasText;
public ResolvedTitle(string titleId, string titleText, Sprite titleSprite)
{
this.titleId = titleId ?? string.Empty;
this.titleText = titleText ?? string.Empty;
this.titleSprite = titleSprite;
}
}
public static ResolvedTitle Resolve(string titleId, string fallbackText)
{
string safeTitleId = string.IsNullOrWhiteSpace(titleId) ? string.Empty : titleId.Trim();
string safeFallbackText = string.IsNullOrWhiteSpace(fallbackText) ? string.Empty : fallbackText.Trim();
Sprite sprite = null;
string resolvedText = safeFallbackText;
PlayerTitleLibrary library = GetTitleLibrary();
if (library != null && !string.IsNullOrEmpty(safeTitleId)
&& library.TryGetTitle(safeTitleId, out PlayerTitleLibrary.PlayerTitleEntry entry)
&& entry != null)
{
sprite = entry.titleSprite;
if (string.IsNullOrWhiteSpace(resolvedText))
{
resolvedText = !string.IsNullOrWhiteSpace(entry.chineseName)
? entry.chineseName.Trim()
: (!string.IsNullOrWhiteSpace(entry.englishName) ? entry.englishName.Trim() : safeTitleId);
}
}
return new ResolvedTitle(safeTitleId, resolvedText, sprite);
}
public static Sprite ResolveSprite(string titleId)
{
return Resolve(titleId, string.Empty).titleSprite;
}
public static PlayerTitleLibrary GetTitleLibrary()
{
if (cachedTitleLibrary == null)
{
cachedTitleLibrary = Resources.Load<PlayerTitleLibrary>(PlayerTitleLibraryResourcePath);
}
return cachedTitleLibrary;
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: fa6b1900d3d4e05499405619dcf2ff36
@@ -13,6 +13,7 @@ using Steamworks;
public class playerMessagePrefab : MonoBehaviour
{
[SerializeField] Image playerProfile;
[SerializeField] Image playerTitleImage;
[SerializeField] Text playerTitle;
[SerializeField] Text playerName;
[SerializeField] Text messageText;
@@ -48,14 +49,16 @@ public class playerMessagePrefab : MonoBehaviour
}
public void Bind(string steamId, string avatarUrl, string displayName, string title, string content, Color bubbleColor)
{
Bind(steamId, avatarUrl, displayName, string.Empty, title, content, bubbleColor);
}
public void Bind(string steamId, string avatarUrl, string displayName, string titleId, string title, string content, Color bubbleColor)
{
_boundSteamId = steamId ?? string.Empty;
_boundAvatarUrl = avatarUrl ?? string.Empty;
if (playerTitle != null)
{
playerTitle.text = string.IsNullOrWhiteSpace(title) ? string.Empty : title;
}
BindPlayerTitle(titleId, title);
if (playerName != null)
{
@@ -79,6 +82,51 @@ public class playerMessagePrefab : MonoBehaviour
}
}
private void BindPlayerTitle(string titleId, string title)
{
EnsureTitleImageReference();
PlayerTitleResolver.ResolvedTitle resolvedTitle = PlayerTitleResolver.Resolve(titleId, title);
bool hasTitleSprite = resolvedTitle.HasSprite;
bool hasTitleText = resolvedTitle.HasText;
if (playerTitleImage != null)
{
playerTitleImage.sprite = resolvedTitle.titleSprite;
playerTitleImage.enabled = hasTitleSprite;
playerTitleImage.gameObject.SetActive(hasTitleSprite);
if (!hasTitleSprite)
{
playerTitleImage.sprite = null;
}
}
if (playerTitle != null)
{
playerTitle.text = !hasTitleSprite && hasTitleText ? resolvedTitle.titleText : string.Empty;
playerTitle.gameObject.SetActive(!hasTitleSprite && hasTitleText);
}
}
private void EnsureTitleImageReference()
{
if (playerTitleImage != null)
{
return;
}
Transform[] children = GetComponentsInChildren<Transform>(true);
for (int i = 0; i < children.Length; i++)
{
Transform child = children[i];
if (child != null && child.name == "玩家称号image")
{
playerTitleImage = child.GetComponent<Image>();
return;
}
}
}
public static async Task WarmAvatarCacheAsync(string steamId, string avatarUrl)
{
if (string.IsNullOrWhiteSpace(steamId) && string.IsNullOrWhiteSpace(avatarUrl))
@@ -363,7 +363,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 63.484863}
m_AnchoredPosition: {x: 0, y: 62.853333}
m_SizeDelta: {x: 40, y: 40}
m_Pivot: {x: 0.5, y: 1}
--- !u!222 &225269693782171328
@@ -439,7 +439,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 118, y: -2}
m_AnchoredPosition: {x: 243, y: -2}
m_SizeDelta: {x: 116, y: 20}
m_Pivot: {x: 0, y: 0.5}
--- !u!222 &2431985745475878602
@@ -533,7 +533,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 128, y: -63.484863}
m_AnchoredPosition: {x: 128, y: -62.853333}
m_SizeDelta: {x: 256, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &5490276556566493605
@@ -576,6 +576,42 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_HorizontalFit: 0
m_VerticalFit: 2
--- !u!1 &3193694844664355718
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5657557821638488651}
m_Layer: 0
m_Name: GameObject
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5657557821638488651
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3193694844664355718}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 9105474240358439909}
m_Father: {fileID: 4409505319181468130}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 178, y: 3}
m_SizeDelta: {x: 120, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &3794995701616312333
GameObject:
m_ObjectHideFlags: 0
@@ -616,7 +652,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -143.99913}
m_SizeDelta: {x: 0, y: 63.484863}
m_SizeDelta: {x: 0, y: 62.853333}
m_Pivot: {x: 0.5, y: 1}
--- !u!114 &6728628998878729785
MonoBehaviour:
@@ -631,6 +667,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
playerProfile: {fileID: 5695022340294760842}
playerTitleImage: {fileID: 9105474240358439911}
playerTitle: {fileID: 5888169934928062198}
playerName: {fileID: 7841361681403526646}
messageText: {fileID: 5951147724285136445}
@@ -691,7 +728,7 @@ MonoBehaviour:
m_MinWidth: -1
m_MinHeight: -1
m_PreferredWidth: -1
m_PreferredHeight: 63.484863
m_PreferredHeight: 62.853333
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 2
@@ -743,6 +780,7 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 423933864671952839}
- {fileID: 5657557821638488651}
- {fileID: 8469056815856914825}
m_Father: {fileID: 4696069065802349809}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -905,3 +943,99 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
maxPreferredWidth: 810
--- !u!1 &9105474240358439908
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 9105474240358439909}
- component: {fileID: 9105474240358439910}
- component: {fileID: 9105474240358439911}
- component: {fileID: 9105474240358439912}
m_Layer: 0
m_Name: playerTitleImage
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &9105474240358439909
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9105474240358439908}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5657557821638488651}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -60, y: -7}
m_SizeDelta: {x: 120, y: 30}
m_Pivot: {x: 0, y: 0.5}
--- !u!222 &9105474240358439910
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9105474240358439908}
m_CullTransparentMesh: 1
--- !u!114 &9105474240358439911
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9105474240358439908}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 1
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &9105474240358439912
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9105474240358439908}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 0
m_MinWidth: -1
m_MinHeight: -1
m_PreferredWidth: 64
m_PreferredHeight: 20
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
@@ -139,6 +139,42 @@ MonoBehaviour:
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &1187413930585374572
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 9034680032282737475}
m_Layer: 0
m_Name: GameObject
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &9034680032282737475
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1187413930585374572}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 9105474240358439909}
m_Father: {fileID: 4409505319181468130}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 120, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &1296804937323052155
GameObject:
m_ObjectHideFlags: 0
@@ -174,7 +210,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 121, y: -2}
m_AnchoredPosition: {x: 246, y: -2}
m_SizeDelta: {x: 113, y: 20}
m_Pivot: {x: 0, y: 0.5}
--- !u!222 &6919442420098058668
@@ -363,7 +399,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 62.501953}
m_AnchoredPosition: {x: 0, y: 62.500916}
m_SizeDelta: {x: 40, y: 40}
m_Pivot: {x: 0.5, y: 1}
--- !u!222 &225269693782171328
@@ -533,7 +569,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 3840, y: -62.501953}
m_AnchoredPosition: {x: 2560, y: -62.500916}
m_SizeDelta: {x: 256, y: 0}
m_Pivot: {x: 1, y: 0.5}
--- !u!114 &5490276556566493605
@@ -616,7 +652,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -143.99913}
m_SizeDelta: {x: 0, y: 62.501953}
m_SizeDelta: {x: 0, y: 62.500916}
m_Pivot: {x: 0.5, y: 1}
--- !u!114 &6728628998878729785
MonoBehaviour:
@@ -631,6 +667,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
playerProfile: {fileID: 5695022340294760842}
playerTitleImage: {fileID: 9105474240358439911}
playerTitle: {fileID: 5888169934928062198}
playerName: {fileID: 7841361681403526646}
messageText: {fileID: 5951147724285136445}
@@ -691,7 +728,7 @@ MonoBehaviour:
m_MinWidth: -1
m_MinHeight: -1
m_PreferredWidth: -1
m_PreferredHeight: 62.501953
m_PreferredHeight: 62.500916
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 2
@@ -743,6 +780,7 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8469056815856914825}
- {fileID: 9034680032282737475}
- {fileID: 423933864671952839}
m_Father: {fileID: 4696069065802349809}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -905,3 +943,99 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
maxPreferredWidth: 810
--- !u!1 &9105474240358439908
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 9105474240358439909}
- component: {fileID: 9105474240358439910}
- component: {fileID: 9105474240358439911}
- component: {fileID: 9105474240358439912}
m_Layer: 0
m_Name: playerTitleImage
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &9105474240358439909
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9105474240358439908}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 9034680032282737475}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -60, y: -7}
m_SizeDelta: {x: 120, y: 30}
m_Pivot: {x: 0, y: 0.5}
--- !u!222 &9105474240358439910
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9105474240358439908}
m_CullTransparentMesh: 1
--- !u!114 &9105474240358439911
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9105474240358439908}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 1
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &9105474240358439912
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9105474240358439908}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 0
m_MinWidth: -1
m_MinHeight: -1
m_PreferredWidth: 64
m_PreferredHeight: 20
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
+5 -1
View File
@@ -814,7 +814,11 @@ public class roomDetails : MonoBehaviour
if (controller != null)
{
string avatarUrl = GameServer.Client.NetworkManager.ResolveAvatarUrl(message.avatar_url, senderSteamId);
controller.Bind(senderSteamId, avatarUrl, displayName, title, message.content, bubbleColor);
string titleId = message != null && !string.IsNullOrWhiteSpace(message.player_title_id)
? message.player_title_id
: string.Empty;
PlayerTitleResolver.ResolvedTitle resolvedTitle = PlayerTitleResolver.Resolve(titleId, title);
controller.Bind(senderSteamId, avatarUrl, displayName, resolvedTitle.titleId, resolvedTitle.titleText, message.content, bubbleColor);
}
UI_OrderedEntryAnimator.PlayFadeOnly(instance, Mathf.Max(0, messageParent.childCount - 1), 0.14f, 0.01f, true);
+1 -1
View File
@@ -294,7 +294,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -413.0012, y: -70.99978}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &5886067044144465411