【Untiy&NGUI】判断鼠标坐标位置与实际屏幕坐标的比较

判断鼠标坐标位置

在Unity中,如果 报错 有的物体 没有实例化,但是程序依旧可以运行

一定要注意,用IF语句判断其不为空

否则,Unity系统工程崩溃,那就很麻烦了


记得要 定义变量

    private Vector3 stwp;

以下是NGUI下使用的代码

 if (UICamera.currentCamera != null)
        {
            stwp = UICamera.currentCamera.ScreenToWorldPoint(Input.mousePosition);
        }
            Debug.Log(stwp);

UICamera 为NGUI 使用 的camera


根据参考资料4,5

以下是Unity 自带的 UGUI 使用的代码

 if (Camera.main != null)
        {
            stwp = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        }

        Debug.Log(stwp);



使用参考资料1,为(0,1,0)Z的值可以忽略,因为是在一个点上的直线

对应的坐标范围如下所示

【Untiy&NGUI】判断鼠标坐标位置与实际屏幕坐标的比较_第1张图片

那么就只用比较 鼠标的屏幕坐标 和 屏幕坐标(0,1,0)的大小就行了

圆圈代表物体,大的长方形方块代表物品详细信息栏,小的长方块代表其他信息


参考资料2,可以知道怎么设置Unity的NGUI的Widget的Pivot


参考资料4,就可以 根据实际 屏幕的分辨率 大小 ,来 调整 鼠标的屏幕坐标大小



--------------------------------------------------------------------------------------------------------------------------

UGUI,Unity自带的官方UI

UGUI,的 屏幕 的 大小

Debug.Log("Screen.width   " + Screen.width+ "   Screen.widthheight   " + Screen.height);


UGUI 屏幕的 中心点

Debug.Log("Screen.width/2   " + Screen.width/2+ "   Screen.widthheight/2   " + Screen.height/2);



鼠标在屏幕上的坐标

if (Input.GetMouseButtonDown(0))
        {
            Debug.Log(" mousePositionOnScreen  " + mousePositionOnScreen);
        }



//获取当前物体在屏幕的位置。根据物体 的3D世界坐标 转换 为 屏幕 上的2D 坐标
        screenPosition = Camera.main.WorldToScreenPoint(transform.position);

屏幕分辨率 大小 的 坐标图 ,如下所示

【Untiy&NGUI】判断鼠标坐标位置与实际屏幕坐标的比较_第2张图片





--------------------------------------------------------------------------------------------------------------------------






--------------------------------------------------------------------------------------------------------------------------

参考资料:

1.unity 实时 获得屏幕中心点的世界坐标

2.【Unity&NGUI】Widget的Pivot怎么用代码动态设置

3.

Unity Camera.main.WorldToScreenPoint注意事项

4.

unity3d 屏幕坐标、鼠标位置、视口坐标和绘制GUI时使用的坐标

5.[入门教程] unity 2d 四大坐标系问题 鼠标点击位置问题 详细入门解析


6.怎么获取当前设备的屏幕分辨率 

7

8..

你可能感兴趣的:(Unity,NGUI,Unity教程,UnityUI)