private void HandleLobbyChatMessage(LobbyChatMessageData data) { string errorMessage; if (CommandParser == null || !CommandParser.TryCallCommand(data.message, false, out errorMessage)) { var isNewMessage = data.sender.userData.id.m_SteamID != SteamUser.GetSteamID().m_SteamID; var prototype = isNewMessage ? othersMessagePrototype : selfMessagePrototype; var go = Instantiate(prototype, collection); var msg = go.GetComponent <ILobbyChatMessage>(); msg.RegisterChatMessage(data); messages.Add(go); Canvas.ForceUpdateCanvases(); if (messages.Count > maxMessages) { var firstLine = messages[0]; messages.Remove(firstLine); Destroy(firstLine.gameObject); } Canvas.ForceUpdateCanvases(); scrollRect.verticalNormalizedPosition = 0f; if (isNewMessage) { NewMessageRecieved.Invoke(); } } }
public void RegisterChatMessage(LobbyChatMessageData data) { this.data = data; PersonaButton.gameObject.SetActive(true); PersonaButton.LinkSteamUser(data.sender.userData); Message.text = data.message; timeStamp = data.recievedTime; timeRecieved.text = timeStamp.ToString(timeFormat); if (ShowStamp && AllwaysShowStamp) { timeRecieved.gameObject.SetActive(true); } else { timeRecieved.gameObject.SetActive(false); } siblingIndex = selfTransform.GetSiblingIndex(); UpdatePersonaIconShow(); processing = true; }