网站首页百科全书 >正文
1、第二节 检测碰撞下面我们通过简单的JavaScript语句来检测碰撞,这在制作游戏中是很有用的,比如说检测到子弹和敌人的碰撞之后,可以使用我们后来要讲到destory命令消灭敌人。这次我们新建一个Terrain项目,在用Grass贴图来覆盖住它,如果你找不到贴图的话,记得在Asset菜单里找找,看看哪些资源你还没有引入进去。然后再加入一个Cube项目,我这里叫做PlayerCube,为他加上重力,之后选择bouncy性质,然后我们再新建一个Cude,调整y和z的值让他变成一堵墙,放置好,命名为Wall,别忘了给Terrain改名为Terrain,之后我们在Asset菜单中建立一个JavaScript项目,改名为CollisionDetect,双击打开,如果你使用的是Unity 3.5的话,就会打开MonoDev,这是一个新工具还是很好用的,在其中新建一个函数,别管Start和Update函数,我们待会会讲。加入以下代码:function OnCollisionEnter(theCollision : Collision){ if(theCollision.gameObject.name=="Terrain"){ Debug.Log("Hit terrain"); }else if(theCollision.gameObject.name=="Wall"){ Debug.Log("Hit the wall"); }如果看不懂这些代码的话,也没关系,JavaScript是最好学的编程语言,Google一下吧,保存这个JS文件,然后拖到我们的PlayerCube上。这时候我们运行,就会看到PlayerCube到处蹦,碰到Terrain的时候,控制台就会显示Hit Terrain,碰到wall的时候就会显示Hit the wall。
2、第三节 检测用户输入下面我们来讲一下如何检测用户的键盘和鼠标的操作。就用我们上次的那个场景,这次我们给PlayerCube加上我们可以控制的动作。就是通过“wasd”或者上下左右键来控制移动。请注意,如果要使用这里使用的方法来控制移动,那么所控制的物体不能够是一个物理世界的物体,也就是说你要把RigidBody这个component删掉,如果你想要在物理世界里移动物体的话,你就需要我们在下面会讲到的力(force)。首先我们新建一个JavaScript文件,这里命名为InputDetect吧,输入下面的代码:#pragma strict var Player : GameObject; function Start () { } function Update () { Player = GameObject.Find("PlayerCube"); if(Input.GetKey(KeyCode.W)){ Debug.Log("Hit w"); Player.transform.Translate(Vector3.forward * 2); }else if(Input.GetKey(KeyCode.S)){ Debug.Log("Hit s"); Player.transform.Translate(Vector3.back * 2); }else if(Input.GetKey(KeyCode.A)){ Debug.Log("Hit a"); Player.transform.Translate(Vector3.left * 2); }else if(Input.GetKey(KeyCode.D)){ Debug.Log("Hit d"); Player.transform.Translate(Vector3.right * 2);
3、第四节 使用Prefab复制和控制物体我们可以直接把Prefab看做是个妈,她能生好多小孩,如果妈妈的DNA变了,小孩的跟着变,就是说你可以用Prefab创建物体,然后通过这个Prefab修改所有这类物体的性质,这对于批量生成的敌人或者NPC来说很有用。首先,先创建一个Prefab,我这里命名为“Mother”,之后新建一个Sphere物体,当然你也可以建一些其他的物体,之后给这个Sphere加上你想要的性质,我加入了RigidBody和Bouncy,之后将Sphere拖到Mother上,你会发现mother变蓝了,之后你就可以随意拖一些mother物体到屏幕上去,你会发现所有的Prefab创建出的物体在清单上都是蓝色的,说明他们都有共同的性质。当然,作用于一个Prefab上的脚本也会作用到它的子物体上去。
4、第五节 使用Destroy命令消灭物体我们游戏中怎么能够没有敌人呢?有敌人就得能够消灭他们,这时候,我们就会使用Destroy命令了。在这里,我们使用上次Mother生出来的小球球作为敌银,一旦我们的PlayerCube碰撞到了小球的话,就是用Destroy让小球消失。新建一个JavaScript脚本,输入以下代码:#pragma strict var mother : GameObject; function Start () { } function Update () { } function OnCollisionEnter(theCollision : Collision){ mother = GameObject.Find("Mother"); if(theCollision.gameObject.name=="Mother"){ Debug.Log("Hit mother"); Destroy(mother);这段代码很好懂吧,就是检验碰撞,然后销毁碰撞到的Mother物体,别忘了把Destroy的JavaScript文件拖到PlayerCube上去。运行一下,就可以看到碰撞到的物体都被消灭了。
本文到此结束,希望对大家有所帮助。
版权说明:本文由用户上传,如有侵权请联系删除!
- 上一篇:民国时期衣服布料(民国印花布连衣裙)
- 下一篇:最后一页
猜你喜欢:
- 2022-07-02民国时期衣服布料(民国印花布连衣裙)
- 2022-07-02什么叫处置权(处置权可以随意支配啥意思相关介绍)
- 2022-07-02多张工作表数据汇总到一张工作表(excel快速汇总多张工作表明细数据到汇总表优质)
- 2022-07-022014上海草莓音乐节
- 2022-07-02十渡游玩攻略两日游(十渡一日游怎么玩啊)
- 2022-07-02农村征地拆迁补偿标准(农村征地拆迁补偿标准)
- 2022-07-02飞屋环游记纯英文字幕(飞屋环游记的英文简介急相关介绍)
最新文章:
- 2022-07-02当日最新消息 某实验室是什么实验室 到底要研发什么法定代表人是谁
- 2022-07-02当日最新消息 女子逛商场遭遇各种刺客6颗话梅128网友荆轲购物广场
- 2022-07-02民国时期衣服布料(民国印花布连衣裙)
- 2022-07-02太仓友谊医院办健康证能用医保吗(太仓友谊医院下午可以办健康证吗相关介绍)
- 2022-07-02九阴真经魁星踢斗13层(九阴真经魁星踢斗6789层那拿什么换)
- 2022-07-02松山湖华为(松山湖)
- 2022-07-02秋葵功效有哪些(秋葵的八大功效优质)
- 2022-07-02单板滑雪冬奥会场地(冬奥会上用的滑板价格相关介绍)
- 2022-07-02戴头上的发簪(簪子 固定头发或顶戴的发饰)
- 2022-07-02衡水市体育局怎么样(衡水市体育局)
- 2022-07-02泡泡堂无限连(泡泡堂无限针怎么弄那)
- 2022-07-02弘悦101值不值得买(弘悦101)
- 2022-07-02旅行箱哪个尺寸实用(旅行箱尺寸与人体对比)
- 2022-07-02老公的笔记本(LG的笔记本怎么样)
- 2022-07-02003010这部即将上映的漫画是原创吗是什么类型的动画相关介绍
- 热点推荐
- 热评文章