///<summary>
///返回_3dPos 到 屏幕上方的NGUI位置
/// </summary>
/// <param name="_3dPos">必须在3d相机的视野范围内,否则转换错误</param>
/// <param name="_3d"></param>
/// <param name="_2d"></param>
/// <param name="uiWidget"></param>
/// <returns></returns>
public static Vector3 TopNgui(Vector3 _3dPos)
{
Vector3 pos = _3dCamera.WorldToViewportPoint(_3dPos);//头顶坐标转 视口坐标 ,得到头顶坐标在视口坐标的位置,
Vector3 ViewportScreenTop = new Vector3(pos.x, 1f); //然后就可以计算得出 人物对应屏幕的最上方坐标, 屏幕最上方点视口坐标 new Vector3(pos.x, 1f)
_uiLabel.transform.position = _2dCamera.ViewportToWorldPoint(ViewportScreenTop); // 然后把 屏幕最上方 坐标转成 世界坐标
pos = _uiLabel.transform.localPosition;
pos.x = Mathf.FloorToInt(pos.x);
pos.y = Mathf.FloorToInt(pos.y);
pos.z = 0f;
_uiLabel.transform.localPosition = pos;
return pos;
}