- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
unity3d游戏开发之点击获取物体
这么一个需求,就是点击或者touch一个物体,我可以获得该物体,从而可以做一些事情,比如在象棋中,我点击象棋棋子从而移动它,比如mmorpg中我点击地图,从而人物移动到点击的那一点。怎么做?我们先创建场景吧,加一个cube和Sphere,记住,所有你想点击的物体都必须有碰撞体,当然cube和Sphere都自带了。然后给摄像机绑个脚本,脚本如下(详情看注释):
[C#]?纯文本查看?复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
void Update () {
if (Input.GetMouseButtonDown(0))
{
//创建一个射线,该射线从主摄像机中发出,而发出点是鼠标点击的位置
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
//创建一个射线信息集
RaycastHit hit;
//如果碰到什么,则····
if (Physics.Raycast(ray, out hit))
{
//此时hit就是你点击的物体,你可以为所欲为了,当然hit.point可以显示此时你点击的坐标值
print(hit.point);
print(hit.transform.name);
}
}
??
}
然后就是显示结果:这么个玩意儿谁也会,我为什么写?因为当这种需求应用到native2D后,就完全不一样了!!!当然tk2d还是用3d碰撞请无视,然后我现在重点给大家讲一下如何点击获取2D物体:还是创建场景,请各位自行找资源,记得加上2D碰撞体哦~~然后依旧摄像机绑代码,上代码!!!
[C#]?纯文本查看?复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
void Update () {
if (Input.GetMouseButtonDown(0))
{
//你问我为什么会有vector3?因为ScreenToWorldPoint没有返回v2的重载!!!
//当然,不同于3D,2D不会用ray,所以这里直接ScreenToWorldPoint(屏幕坐标转世界坐标),发出地为鼠标位置
Vector3 v3 = Camera.main.ScreenToWorldPoint(Input.mousePosition);
//喜闻乐见的3转2
Vector2 v2 = new Vector2(v3.x, v3.y);
//创建hit信息集,你看看,都加了2D,参数信息是(发出射线的位置,发出射线的方向)
//你问我为什么是Vector2.zero?我也想问为什么?别问我我是怎么知道的···
RaycastHit2D hit = Physics2D.Raycast(v2, Vector2.zero);
if (hit.collider != null)
{
//如果碰到些什么,嘿嘿···
print(hit.transform.name);
}
}
}
所以文章的重点在于2D,当然你们不用Native2D请无视,我只是给类似我昨天百度一晚上这个问题的人的一个答案。PS:需要补充一点···如果2D的想成功···必须使用正交摄像机,而不是透视,切记切记PPS:如果两个物体的碰撞区域重叠了,那么先判断哪个呢?答案是先判断离摄像机近的,即z轴小的···
您可能关注的文档
- supermap制作专题地图详细过程.doc
- S学习问题个性化分析诊断系统.doc
- Suunto数据同步攻略.docx
- T3用友通普及版主要功能及特点.doc
- SSC远程访问教程.doc
- TD拥塞日常优化方法.doc
- TDMANoise.doc
- Tcp协议分析实验报告.doc
- TED为何普通民众需要懂得权力.doc
- The-devil-wears-prada中英对照.doc
- 《中国通史》文字稿第12集春秋争霸.docx
- java教程--类与对象-讲义课件(演讲稿).ppt
- Vue应用程序开发-(1).pptx
- 东北师大版社劳动实践与评价指导手册一年级上册主题二活动一寻找五彩的树叶课时课件.pptx
- 外研版英语四年级上册 Module 4 Unit 2 How much is it单元教学设计.docx
- 外研版英语四年级上册Module 4 单元整体教学设计.docx
- 6《上课之前》课件 鄂科技版 心理健康教育一年级.pptx
- 《1~5的认识》说课课件(共25张PPT)人教版一年级上册数学.pptx
- 六《解决问题(1)》说课课件 人教版 三年级上册数学.pptx
- 七《解决问题》说课课件 人教版 二年级上册数学.pptx
文档评论(0)