[Unity] WORLD To NGUI

APP 2020. 3. 20. 17:44

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;

public class UI_HudText : MonoBehaviour
{
    public UILabel lbDamage;
    public System.Action OnTweenEndCall;
    public void Init(UIRoot uIRoot, Vector3 pos, float damage)
    {
        lbDamage.text = damage.ToString();
        this.transform.SetParent(uIRoot.transform);
        this.transform.localScale = new Vector3(1, 1, 1);
        this.transform.localPosition = pos;
    }
    public void Play()
    {
        var pos = this.transform.position;
        pos.y += 0.2F;
        Sequence mySequence = DOTween.Sequence();
        mySequence.Append(this.transform.DOMove(pos, 0.3f));
        mySequence.Join(this.transform.DOScale(new Vector3(1.5f, 1.5f, 1.5f), 0.3f));

        mySequence.AppendCallback(() =>
       {
           OnTweenEndCall();
       });
        mySequence.Play();
    }
    public void Play2()
    {
        var pos = this.transform.position;
        pos.y += 0.2F;
        Sequence mySequence = DOTween.Sequence();
        mySequence.Append(this.transform.DOScale(new Vector3(1.6f, 1.6f, 1.6f), 0.3f));
        //mySequence.Append(this.transform.DOScale(Vector3.one, 0.1f));       
        mySequence.AppendCallback(() =>
        {
            OnTweenEndCall();
        });
        mySequence.Play();
    }
    public void Play3()
    {
        var pos = this.transform.position;
        pos.y += 0.2F;
        Sequence mySequence = DOTween.Sequence();
        mySequence.Append(this.transform.DOScale(new Vector3(1.6f, 1.6f, 1.6f), 0.3f));
        //mySequence.Append(this.transform.DOScale(Vector3.one, 0.1f));       
        mySequence.AppendCallback(() =>
        {
            OnTweenEndCall();
        });
        mySequence.Play();
    }

}

 

 

 

 

 

 private void DisplayHudText(UIRoot uiRoot, Vector3 monsterPos, float damage)
    {
        Vector3 v = mainCam.WorldToScreenPoint(monsterPos);
        //Debug.Log(v);

        v.x = (v.x / Screen.width) * 1080;
        v.y = (v.y / Screen.height) * 1920;
        v.z = 0;
        var pos = v - new Vector3(1080 / 2, 1920 / 2, 0);
        //Debug.Log(v);
        //Debug.Log(v - new Vector3(1080 / 2, 1920 / 2, 0));
        var hudTextGo = EasyObjectPool.instance.GetObjectFromPool("UI_HudText1", Vector3.zero, Quaternion.identity);
        var hud = hudTextGo.GetComponent();
        hud.Init(uiRoot, pos, damage);
        hud.OnTweenEndCall = () =>
        {
            EasyObjectPool.instance.ReturnObjectToPool(hud.gameObject);
        };
        hud.Play();

    }

 

: