关于场景中的物件和鼠标事件的触发
2013-07-02 23:13
246 查看
关于场景中的物件和鼠标事件(点击、拖拽等等)我这里提供两种关联方法。
1.主动响应:
通过查找文档,我们会发现monobehaviour已经为我们重载了鼠标事件方法
![](https://app.yinxiang.com/shard/s11/res/62a6bb53-2e91-48a2-ad15-5a6409ba7c72.png?resizeSmall&width=1340)
![](https://app.yinxiang.com/shard/s11/res/676b0a34-bf2d-4758-8109-4eade12abd71.png?resizeSmall&width=1340)
现在创建一个名为click的脚本:
![](https://app.yinxiang.com/shard/s11/res/fa3cc5d3-62b3-4472-b369-45479591972b.png?resizeSmall&width=1340)
我在这个脚本里面重载三个方法:
![](https://app.yinxiang.com/shard/s11/res/59b97935-b578-46d4-a9d8-28e64131ee1f.png?resizeSmall&width=1340)
现在在场景里面创建一个物件(我这里就用上一次用到的cube,大家也可以自行创建,不过这里有一个注意点,物件需要有collider属性,不然无法点击哦~)
![](https://app.yinxiang.com/shard/s11/res/2de2aa2b-6a83-4ee9-bd9b-b1ccb14a9c90.png?resizeSmall&width=1340)
Collider(碰撞)可以是勾选Is Trigger的哈~
现在运行测试,看看运行的效果吧。
2.被动响应:
被动响应指的是物件自身不做鼠标事件的检测工作,而是通过第三方的相机射线检测。
现在创建一个脚本:
![](https://app.yinxiang.com/shard/s11/res/2c064a55-f80a-4083-be8c-051994d7b59e.png?resizeSmall&width=1340)
接着我们重写update事件:
![](https://app.yinxiang.com/shard/s11/res/bca95a2b-70d3-4a47-abb0-276e671e3d36.png?resizeSmall&width=1340)
这里我演示了当鼠标碰到物件时的响应,效果和OnMouseEnter是一样的,这里我们通过ViewportPointToRay将鼠标坐标(世界坐标)转为我们相机的视野坐标(也就是画面的坐标),接着通过将坐标转为射线,检测这条射线的路径上是否有“击中”物件,如此一来检测物件是否被点击。
更多的射线点击功能大家可以通过ViewportPointToRay这个方法在文档中伸入的学习和使用。
1.主动响应:
通过查找文档,我们会发现monobehaviour已经为我们重载了鼠标事件方法
![](https://app.yinxiang.com/shard/s11/res/62a6bb53-2e91-48a2-ad15-5a6409ba7c72.png?resizeSmall&width=1340)
![](https://app.yinxiang.com/shard/s11/res/676b0a34-bf2d-4758-8109-4eade12abd71.png?resizeSmall&width=1340)
现在创建一个名为click的脚本:
![](https://app.yinxiang.com/shard/s11/res/fa3cc5d3-62b3-4472-b369-45479591972b.png?resizeSmall&width=1340)
我在这个脚本里面重载三个方法:
![](https://app.yinxiang.com/shard/s11/res/59b97935-b578-46d4-a9d8-28e64131ee1f.png?resizeSmall&width=1340)
现在在场景里面创建一个物件(我这里就用上一次用到的cube,大家也可以自行创建,不过这里有一个注意点,物件需要有collider属性,不然无法点击哦~)
![](https://app.yinxiang.com/shard/s11/res/2de2aa2b-6a83-4ee9-bd9b-b1ccb14a9c90.png?resizeSmall&width=1340)
Collider(碰撞)可以是勾选Is Trigger的哈~
现在运行测试,看看运行的效果吧。
2.被动响应:
被动响应指的是物件自身不做鼠标事件的检测工作,而是通过第三方的相机射线检测。
现在创建一个脚本:
![](https://app.yinxiang.com/shard/s11/res/2c064a55-f80a-4083-be8c-051994d7b59e.png?resizeSmall&width=1340)
接着我们重写update事件:
![](https://app.yinxiang.com/shard/s11/res/bca95a2b-70d3-4a47-abb0-276e671e3d36.png?resizeSmall&width=1340)
这里我演示了当鼠标碰到物件时的响应,效果和OnMouseEnter是一样的,这里我们通过ViewportPointToRay将鼠标坐标(世界坐标)转为我们相机的视野坐标(也就是画面的坐标),接着通过将坐标转为射线,检测这条射线的路径上是否有“击中”物件,如此一来检测物件是否被点击。
更多的射线点击功能大家可以通过ViewportPointToRay这个方法在文档中伸入的学习和使用。
相关文章推荐
- 关于鼠标悬停,事件延时触发的解决
- C#/winform 自动触发鼠标、键盘事件
- javascript事件列表大全解说,点击事件,双击事件,触发事件,键盘事件,鼠标移动事件,javaScript事件使用小全
- 关于Hidden域触发事件的问题
- 关于前端中几个加载触发事件
- 关于div的mouseout事件触发不准的解决办法
- 关于JavaScript 弹出窗口 展开 TreeView 事件 无法触发问题
- 关于鼠标滚轮事件
- 关于设计:Actionscript 有关鼠标事件笔记
- 鼠标悬停,延后触发事件
- 为什么鼠标还没完全移出就触发元素的mouseout事件
- 【Flex】——DataGrid的鼠标焦点移动事件。鼠标在DataGrid的列中移动时所触发的event。
- NGUI点击按钮时如何屏蔽场景鼠标事件
- 关于js中的鼠标事件总结
- 关于Qt5 QML中Canvas画布叠加区域为透明时,如何传递鼠标事件到下层画布。
- 当鼠标移入移出div时,触发事件(此处为图片的可见和不可见)
- 关于键盘触发事件和屏幕触发事件的问题
- 关于Android Spinner setSelection 和 onItemSelected事件的触发顺序
- 鼠标悬停、事件触发试用,及信号发送
- 关于input的file框onchange事件触发一次失效的新的解决方法