using UnityEngine; using UnityEngine.UI; namespace SanAndreasUnity.Utilities { public class OnScreenMessage : MonoBehaviour { public Text TextComponent { get; private set; } public string Text { get => this.TextComponent.text; set => this.TextComponent.text = value; } public Color TextColor { get => this.TextComponent.color; set => this.TextComponent.color = value; } /// in percentage of screen dimensions public Vector2 ScreenPos { get => Vector2.Scale(new Vector2(this.transform.localPosition.x, this.transform.localPosition.y), new Vector2(1.0f / Screen.width, 1.0f / Screen.height)); set { (this.transform as RectTransform).localPosition = new Vector3(value.x * Screen.width, value.y * Screen.height, 0f); } } /// in percentage of screen dimensions public Vector2 SizeOnScreen { get => Vector2.Scale((this.transform as RectTransform).sizeDelta, new Vector2(1.0f / Screen.width, 1.0f / Screen.height)); set { (this.transform as RectTransform).sizeDelta = new Vector2(value.x * Screen.width, value.y * Screen.height); } } /// in percentage of screen dimensions public Vector2 velocity = Vector2.zero; /// how much time it is displayed public float timeLeft = 2; void Awake() { this.TextComponent = this.GetComponentInChildren(); } } }