//3D座標を指定するUGUIの場合は親を設定するメリットがないので用意しない /// <summary> /// 指定された場所に指定された設定でUGUIのメッセージを表示する /// </summary> public void ShowMessage(string message, Vector3 position, Quaternion rotation, FontSettings settings) { AbstractUGUIText text = textPool.GetInstance(); text.transform.SetPositionAndRotation(uiCamera.WorldToScreenPoint(position), rotation); InitializeUGUIText(text, message, settings); StartCoroutine(settings.showAnimation.GetAnimation(text, settings.showAnimationTime).OnCompleted(() => { if (settings.limitLife <= 0.0f) { StartCoroutine(settings.hideAnimation.GetAnimation(text, settings.hideAnimationTime).OnCompleted(() => { textPool.ReturnInstance(text); })); } else { KKUtilities.Delay(settings.limitLife, () => { StartCoroutine(settings.hideAnimation.GetAnimation(text, settings.hideAnimationTime).OnCompleted(() => { textPool.ReturnInstance(text); })); }, this); } })); }
/// <summary> /// 指定された場所に指定された設定でUGUIのメッセージを表示する /// </summary> public void ShowMessage(string message, Vector2 localPosition, Quaternion localRotation, Transform parent, FontSettings settings) { AbstractUGUIText text = textPool.GetInstance(); InitializeUGUIText(text, message, settings); text.RectTransform.SetParent(parent); text.RectTransform.anchoredPosition = localPosition; text.RectTransform.localRotation = localRotation; StartCoroutine(settings.showAnimation.GetAnimation(text, settings.showAnimationTime).OnCompleted(() => { if (settings.limitLife <= 0.0f) { StartCoroutine(settings.hideAnimation.GetAnimation(text, settings.hideAnimationTime).OnCompleted(() => { textPool.ReturnInstance(text); })); } else { KKUtilities.Delay(settings.limitLife, () => { StartCoroutine(settings.hideAnimation.GetAnimation(text, settings.hideAnimationTime).OnCompleted(() => { textPool.ReturnInstance(text); })); }, this); } })); }
void InitializeUGUIText(AbstractUGUIText text, string message, FontSettings settings) { InitializeUIText(text, message, settings); text.transform.localScale = Vector3.one; text.gameObject.SetActive(true); }