游戏蛮牛学习群(纯技术交流,不闲聊):959392658
排列三2014079期正版藏机图 手机端
查看: 23503|回复: 161
发新帖

排列三专家杀码定胆: [基础知识] Unity3D射线的原理用法以及一个利用射线实现简单拾取的小例子

  [复制链接]  [移动端链接]
7日久生情
4367/5000
排名
2911
昨日变化
1

排列三2014079期正版藏机图 www.d0po.cn 1646

主题

1657

帖子

4367

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
132510
好友
17
蛮牛币
79206
威望
0
注册时间
2015-12-24
在线时间
352 小时
最后登录
2017-6-20
跳转到指定楼层
楼主
发表于 2016-5-27 10:34:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
  最近开始研究排列三2014079期正版藏机图,它的强大就不多说了, 今天研究了研究射线相关东西,总结了些东西放上来,一来做个笔记,二来和大家分享分享!嘿嘿~  如果有不对的地方希望指出哈 !- _ - 进入正题

  射线:射线是3D世界中一个点向一个方向发射的一条无终点的线,在发射轨迹中与其他物体发生碰撞时,它将停止发射 。

  用途:射线应用范围比较广, 多用于碰撞检测(如:子弹飞行是否击中目标)、角色移动等 等。

  相关API:

  1、Ray Camera.main.ScreenPointToRay(Vector3 pos)   返回一条射线Ray从摄像机到屏幕指定一个点

  2、Ray Camera.main.ViewportPointToRay(Vector3 pos)  返回一条射线Ray从摄像机到视口(视口之外无效)指定一个点

  3、Ray 射线类

  4、RaycastHit 光线投射碰撞信息

  5、bool Physics.Raycast(Vector3 origin, Vector3 direction, float distance, int layerMask)

  当光线投射与任何碰撞器交叉时为真,否则为假。

  bool Physics.Raycast(Ray ray, Vector3 direction, RaycastHit out hit, float distance, int layerMask)

  在场景中投下可与所有碰撞器碰撞的一条光线,并返回碰撞的细节信息()。

  bool Physics.Raycast(Ray ray, float distance, int layerMask)

  当光线投射与任何碰撞器交叉时为真,否则为假。

  bool Physics.Raycast(Vector3 origin, Vector3 direction, RaycastHit out hit,float distance, int layerMask)

  当光线投射与任何碰撞器交叉时为真,否则为假。

  注意:如果从一个球型体的内部到外部用光线投射,返回为假。

  参数理解:

  origin : 在世界坐标中射线的起始点

  direction: 射线的方向

  distance: 射线的长度

  hit: 使用c#中out关键字传入一个空的碰撞信息类,然后碰撞后赋值??梢缘玫脚鲎参锾宓膖ransform,rigidbody,point等信息。

  layerMask: 只选定Layermask层内的碰撞器,其它层内碰撞器忽略。 选择性的碰撞

  6、RaycastHit[] RaycastAll(Ray ray, float distance, int layerMask)

  投射一条光线并返回所有碰撞,也就是投射光线并返回一个RaycastHit[]结构体。

  下面一个利用射线做的拾取的小例子(将代码直接拖拽到主相机上)

  复制代码

  1 using UnityEngine;

  2 using System.Collections;

  3

  4 public class RayTest : MonoBehaviour {

  5

  6     // Use this for initialization

  7     void Start () {

  8

  9     }

  10

  11     // Update is called once per frame

  12     void Update ()

  13     {

  14         if(Input.GetMouseButton(0))

  15         {

  16             Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//从摄像机发出到点击坐标的射线

  17             RaycastHit hitInfo;

  18             if(Physics.Raycast(ray,out hitInfo))

  19             {

  20                 Debug.DrawLine(ray.origin,hitInfo.point);//划出射线,只有在scene视图中才能看到

  21                 GameObject gameObj = hitInfo.collider.gameObject;

  22                 Debug.Log("click object name is " + gameObj.name);

  23                 if(gameObj.tag == "boot")//当射线碰撞目标为boot类型的物品 ,执行拾取操作

  24                 {

  25                     Debug.Log("pick up!");

  26                 }

  27             }

  28         }

  29     }

  30 }

点评

谢谢楼主分享,尽管我没听懂  发表于 2017-5-14 09:23

评分

参与人数 10鲜花 +15 收起 理由
夜雨缨华 + 2 很给力!
Coool + 1 很给力!
之间 + 1 赞一个!
海王星 + 1 很给力!
桐叶之语 + 2 赞一个!
下回合123 + 2 很给力!
阳光正好 + 2 赞一个!
王富庆 + 1 赞一个!
星辰xzx + 2 赞一个!
陈一霏 + 1 很给力!

查看全部评分


排名
18839
昨日变化
8

0

主题

6

帖子

57

积分

Rank: 2Rank: 2

UID
141794
好友
0
蛮牛币
77
威望
0
注册时间
2016-3-18
在线时间
21 小时
最后登录
2016-10-13
沙发
发表于 2016-5-30 22:42:06 | 只看该作者
感谢分享。

3偶尔光临
191/300
排名
11667
昨日变化
4

1

主题

72

帖子

191

积分

Rank: 3Rank: 3Rank: 3

UID
30655
好友
2
蛮牛币
88
威望
0
注册时间
2014-6-21
在线时间
37 小时
最后登录
2016-9-22
板凳
发表于 2016-6-2 19:35:28 | 只看该作者
射线是一个什么东西,一点也不懂?

3偶尔光临
191/300
排名
11667
昨日变化
4

1

主题

72

帖子

191

积分

Rank: 3Rank: 3Rank: 3

UID
30655
好友
2
蛮牛币
88
威望
0
注册时间
2014-6-21
在线时间
37 小时
最后登录
2016-9-22
地板
发表于 2016-6-2 19:37:27 | 只看该作者
感谢Man牛 发表于 2016-6-2 19:35
射线是一个什么东西,一点也不懂?

我是说我自己,一点也不多,看了你这个能明白点了,好像枪战类游戏子弹都是这么设置的吧?

5熟悉之中
717/1000
排名
7850
昨日变化
5

3

主题

88

帖子

717

积分

Rank: 5Rank: 5

UID
128276
好友
0
蛮牛币
3130
威望
0
注册时间
2015-11-8
在线时间
474 小时
最后登录
2018-12-10
5#
发表于 2016-6-11 17:16:17 | 只看该作者
射线确实是很实用的东西

4四处流浪
461/500
排名
7146
昨日变化
4

0

主题

176

帖子

461

积分

Rank: 4

UID
102902
好友
0
蛮牛币
4550
威望
0
注册时间
2015-5-24
在线时间
111 小时
最后登录
2018-6-30
6#
发表于 2016-6-29 09:41:46 | 只看该作者
听说积分能换实物了,赶紧刷点分,另外楼主的资源确实应该顶!

3偶尔光临
224/300
排名
12347
昨日变化
6

0

主题

73

帖子

224

积分

Rank: 3Rank: 3Rank: 3

UID
67653
好友
0
蛮牛币
242
威望
0
注册时间
2015-1-11
在线时间
79 小时
最后登录
2018-6-1
7#
发表于 2016-7-9 20:07:10 | 只看该作者
#4 楼没事吧?

点评

确实不错分享的  发表于 2017-8-22 10:03
[发帖际遇]: siren 在网吧通宵,花了 3 蛮牛币. 幸运榜 / 衰神榜

3偶尔光临
232/300
排名
12548
昨日变化
3

0

主题

78

帖子

232

积分

Rank: 3Rank: 3Rank: 3

UID
155351
好友
0
蛮牛币
333
威望
0
注册时间
2016-7-6
在线时间
84 小时
最后登录
2017-6-5
QQ
8#
发表于 2016-7-10 17:16:13 | 只看该作者
感谢分享。很有用的?。?!

3偶尔光临
232/300
排名
12548
昨日变化
3

0

主题

78

帖子

232

积分

Rank: 3Rank: 3Rank: 3

UID
155351
好友
0
蛮牛币
333
威望
0
注册时间
2016-7-6
在线时间
84 小时
最后登录
2017-6-5
QQ
9#
发表于 2016-7-10 17:16:30 | 只看该作者
感谢分享。很有用的?。?!
[发帖际遇]: Lyk 发帖时在路边捡到 1 蛮牛币,偷偷放进了口袋. 幸运榜 / 衰神榜

6蛮牛粉丝
1285/1500
排名
1968
昨日变化
10

0

主题

147

帖子

1285

积分

Rank: 6Rank: 6Rank: 6

UID
86609
好友
0
蛮牛币
993
威望
0
注册时间
2015-3-29
在线时间
468 小时
最后登录
2018-12-11
10#
发表于 2016-7-14 14:22:44 | 只看该作者
确实很犀利,先用一些时间再说

排名
63184
昨日变化
192

0

主题

5

帖子

8

积分

Rank: 1

UID
157502
好友
0
蛮牛币
17
威望
0
注册时间
2016-7-18
在线时间
2 小时
最后登录
2016-7-19
11#
发表于 2016-7-18 16:25:04 | 只看该作者

感谢分享。很有用的?。?!

排名
399
昨日变化

1

主题

352

帖子

2782

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
4748
好友
0
蛮牛币
9199
威望
0
注册时间
2013-9-29
在线时间
790 小时
最后登录
2018-12-11

社区QQ达人

12#
发表于 2016-7-24 14:40:22 | 只看该作者
  亲,VIVE Unity开发 关于抛物线移动的问题,在Unity中运行 手柄移动 都没有问题。但是在导出发布,这个手柄抛物线移动的效果就没了呢?请教下 。这是什么问题呢?

6蛮牛粉丝
1065/1500
排名
2084
昨日变化

3

主题

120

帖子

1065

积分

Rank: 6Rank: 6Rank: 6

UID
157889
好友
0
蛮牛币
1658
威望
0
注册时间
2016-7-20
在线时间
306 小时
最后登录
2018-3-1
QQ
13#
发表于 2016-7-27 17:20:09 | 只看该作者
学习了,多谢

2初来乍到
114/150
排名
28238
昨日变化
10

0

主题

32

帖子

114

积分

Rank: 2Rank: 2

UID
91731
好友
1
蛮牛币
396
威望
0
注册时间
2015-4-13
在线时间
70 小时
最后登录
2018-11-25
14#
发表于 2016-7-30 17:16:54 | 只看该作者
这叫什么原理,很垃圾!就把API看了一遍就是原理了?

2初来乍到
102/150
排名
15790
昨日变化
4

0

主题

26

帖子

102

积分

Rank: 2Rank: 2

UID
145255
好友
0
蛮牛币
41
威望
0
注册时间
2016-4-12
在线时间
33 小时
最后登录
2018-3-8
15#
发表于 2016-8-5 21:22:46 | 只看该作者
写的不错!

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 排列三2014079期正版藏机图 返回列表
  • 首批限竞房正式入市 戳三大盘看详情! ——凤凰网房产北京 2018-12-09
  • 世界杯频爆冷门网友大呼“天台见”!警方:不要冲动,不要跳楼 2018-08-21
  • 始终如一的是:美国优先。 2018-08-21
  • 638| 407| 692| 376| 594| 578| 125| 138| 381| 176|