NGUI 中,长技能图标显示技能Tips的核心代码

需要将技能图标对应的位置Pos赋给Tips即可。下面是计算 Pos 的核心代码:

using UnityEngine;

public class LgsTest : MonoBehaviour
{
    [SerializeField]
    GameObject skillIcon;

    GameObject TipsInfo;                //到实际的项目中,只需要将改对象即可
    Vector3 offVec3 = Vector3.zero;     //偏移量
    public static Camera m_Camera;

    void Start()
    {
        if (null == m_Camera)
            m_Camera = UICamera.FindCameraForLayer(skillIcon.layer).GetComponent<Camera>();
        UIEventListener.Get(skillIcon).onPress = OnPressSkillIconBtn;
    }

    void OnPressSkillIconBtn(GameObject go, bool show)
    {
        if (null == m_Camera)
            m_Camera = UICamera.FindCameraForLayer(skillIcon.layer).GetComponent<Camera>();
        if (show)
        {
            Vector3 screenPos = m_Camera.WorldToScreenPoint(skillIcon.transform.position);
            Vector3 finPos = m_Camera.ScreenToWorldPoint(screenPos + offVec3);
            TipsInfo.transform.position = finPos;
            TipsInfo.SetActive(true);
        }
        else
        {
            TipsInfo.SetActive(false);
        }
    }
}

 

posted @ 2018-04-19 19:33  小·糊涂仙  阅读(161)  评论(0编辑  收藏  举报