Unity3D 4.6.3中射线的用法
来源:互联网 发布:门禁控制器编程 编辑:程序博客网 时间:2024/06/11 03:22
最近开发中要用到射线,就在网上搜了一下,写的版本都较老,在新的unity版本中不再可用,今天就Unity3D4.6.3来看看射线的用法:
具体的类及其中的函数在此不做详述,请参见官方文档,下面就开发中可能会经常用到的一个功能来加以叙述:
用鼠标点击游戏物体实现相关事件的触发
注:开发过程中鼠标左键点击事件在手持设备上会自动转化为单点触屏事件
直接上代码:
<span style="font-size:14px;">using UnityEngine;using System.Collections;using UnityEngine.EventSystems;using UnityEngine.UI;public class Sample : MonoBehaviour {</span>
<span style="font-size:14px;"> void Update() { //鼠标左键点击事件 if (Input.GetMouseButtonDown(0)) { //获取摄像机到鼠标位置的射线,老版的unity中可在Physics2D.Raycast()中直接使用该射线,4.6.3已不支持 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); //通过刚才获得的射线获取相应初始点和方向 Vector2 origin = new Vector2(ray.origin.x, ray.origin.y); Vector2 direction = new Vector2(ray.direction.x, ray.direction.y); //获取2D射线碰撞物体,老版返回值为bool型,通过out关键字输出碰撞物体,新版返回值即为碰撞物体 RaycastHit2D hit = Physics2D.Raycast(origin, direction); if (hit != null) { //碰撞物体辨别 if (hit.collider == gameObject.collider2D) { Debug.Log("Raycast the gameobject success!"); } } } }}</span>
将脚本绑定到一个2D物体上运行即可,注意物体必须在摄像机可见范围内,否则射线检测不到!
0 0
- Unity3D 4.6.3中射线的用法
- unity3d--unity3d射线的原理用法
- Unity3D中射线的相关使用
- unity3D 射线的使用
- unity3d射线的原理用法以及一个利用射线实现简单拾取的小例子
- unity3d射线的原理用法以及一个利用射线实现简单拾取的小例子
- unity3d射线的原理用法以及一个利用射线实现简单拾取的小例子
- unity3d射线的原理用法以及一个利用射线实现简单拾取的小例子
- Unity3d射线的原理用法以及一个利用射线实现简单拾取的小例子
- Unity中射线的用法小结
- unity3d射线
- Unity3D射线
- Unity3D射线
- unity3d 射线
- 【unity3d游戏开发之基础篇】unity3d射线的原理用法以及一个利用射线实现简单拾取的小例子
- [Unity3D]射线碰撞检测+LayerMask的使用
- [Unity3D]射线碰撞检测+LayerMask的使用
- [Unity3D]射线碰撞检测+LayerMask的使用
- PullToRefreshListView 自动刷新
- 贪心算法之活动分配问题
- HTML DOM节点的属性获取
- ffplay控制音量方法
- linux文件函数-write
- Unity3D 4.6.3中射线的用法
- mysql 确定前缀索引长度方法
- hihoCoder 1089 : 最短路径·二:Floyd算法
- iOS开发系列--通知与消息机制
- 关于Qt5.4.0的中文翻译不“完整”的解决方法
- windows套接字编程
- hihoCoder 1093 : 最短路径·三:SPFA算法
- 草根开发者的野心:用10秒小手游征服东南亚与美国市场
- 关于LATEX