//////////////////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> // Called each frame. /// </summary> private void Update() { // Slowly time out all known messages for (int i = 0; i < _Messages.Count; i++) { _Messages[i]._TimeOnScreen -= Time.deltaTime; if (_Messages[i]._TimeOnScreen <= 0) { // Clamp _Messages[i]._TimeOnScreen = 0; // Fade out _Messages[i]._Text.color = Color.Lerp(_Messages[i]._Text.color, Color.clear, FadeOutRate * Time.deltaTime); } // Message has finished fade out if (_Messages[i]._Text.color.a < 0.01f) { // Destroy message object MatchFeedObject feedObject = _Messages[i]; _Messages.RemoveAt(i); Destroy(feedObject._GameObject); } } }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> // /// </summary> /// <param name="message"></param> public void AddMessage(string message) { if (FeedTextStencil != null) { // Push all current messages up for (int i = 0; i < _Messages.Count; i++) { RectTransform rect = _Messages[i]._Text.GetComponent <RectTransform>(); rect.anchoredPosition = new Vector2(rect.anchoredPosition.x, rect.anchoredPosition.y + VerticalOffset); } // Create new message instance MatchFeedObject messageObj = new MatchFeedObject(); GameObject obj = Instantiate(FeedTextStencil); Text txt = obj.GetComponent <Text>(); RectTransform objrect = obj.GetComponent <RectTransform>(); // Setup message properties txt.text = message.ToUpper(); messageObj._Text = txt; messageObj._TimeOnScreen = MessageOnScreenTime; messageObj._GameObject = obj; obj.transform.SetParent(gameObject.transform); objrect.anchoredPosition = new Vector2(PosX, PosY); obj.SetActive(true); _Messages.Add(messageObj); } }