博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity 3D物体的点击事件响应以及NGUI坐标和世界坐标的互相转换
阅读量:4677 次
发布时间:2019-06-09

本文共 1072 字,大约阅读时间需要 3 分钟。

Unity 版本:4.5 NGUI版本:3.6.5

参考链接:,Uniyt圣典

       ,作者:游戏蛮牛 han1127

       ,博客园 梦想之家

 

1、3D物体的点击事件响应:

  下述代码添加到3D 物体中,通过对鼠标点击位置的射线进行碰撞检测,然后判断点击的是不是当前的对象即可

void Update()    {        if (Input.GetButtonDown("Fire1"))        {            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);            RaycastHit hit;            if (Physics.Raycast(ray, out hit))            {                if (hit.collider.gameObject == gameObject)                {                     //插入执行代码                    }            }        }    }

 

2、世界坐标转为NGUI坐标:

// 获取目标物体的屏幕坐标Vector3 pos = Camera.main.WorldToScreenPoint(gameobject);// 将屏幕坐标转换为UI的世界坐标pos = UICamera.currentCamera.ScreenToWorldPoint(pos);// 由于NGUI 2D界面的Z轴都为0          pos.z = 0;// 将修改过的坐标赋给UI界面_button.transform.position = new Vector3(pos.x, pos.y, pos.z);

 

3、NGUI坐标转为世界坐标:

// 获取按钮的屏幕坐标Vector3 pos = UICamera.currentCamera.WorldToScreenPoint(_button.transform.position);pos.z = 1;pos = Camera.main.ScreenToWorldPoint(pos);_cube.transform.position = new Vector3(pos.x,pos.y,pos.z);

 

转载于:https://www.cnblogs.com/vitah/p/3988031.html

你可能感兴趣的文章
总结下抽象类Abstract和虚方法Virtual(易混点)
查看>>
CSUOJ 1248 非变性聚丙烯酰胺凝胶电泳
查看>>
POJ 2823 Sliding Window
查看>>
element-UI el-table二次封装
查看>>
Quartz.net Cron表达式
查看>>
类名.class
查看>>
vue组件
查看>>
Tensorflow without a phd master 1——Jetson nano初体验5
查看>>
[Lua]内存泄漏与垃圾回收
查看>>
linux 多进程绑定问题
查看>>
HTML5语义化标签
查看>>
【Java】基础篇-LinkedList
查看>>
006 输入和输出
查看>>
Python3.5.2中的变量介绍
查看>>
请比较throw 合throws的区别
查看>>
Python3 的列表
查看>>
javaee 第14周
查看>>
iOS上的MapKit
查看>>
「提离职」算正确的加薪姿势么?
查看>>
最简单的C# Windows服务程序
查看>>