unity 判断触摸坐标是否落在ui上

1.触摸坐标转ui的GameObject的localPosition

Vector3 uiPosGet(Vector3 pos,RectTransform rect)  
{  
    Vector2 pos2D;  
    RectTransformUtility.ScreenPointToLocalPointInRectangle(rect, pos, can.worldCamera, out pos2D);  
    Vector3 newPos = new Vector3(pos2D.x, pos2D.y, 0);  
    return newPos;  
}  
2.判断newPos的长宽是否超过UI的长宽(以正方形ui示例)
///   
    /// 判断当前touch pos是否落在Collider范围内  
    ///   
    /// 触摸坐标  
    /// joy的RectTransform  
    ///   
    bool isTouchInCollider(Vector3 pos)  
    {  
        bool bRet = false;  
        RectTransform rect = transform as RectTransform;  
        Vector3 newPos = uiPosGet(pos, rect);  
        if (newPos.x >= -m_colliderRadius && newPos.x <= m_colliderRadius && newPos.y >= -m_colliderRadius &&  
            newPos.y <= m_colliderRadius)  
        {  
            bRet = true;  
        }  
        return bRet;  
    } 


你可能感兴趣的:(游戏脚本,NGUI)