您现在的位置: 主页 > 上位机技术 > Unity3D > Unity3D游戏引擎最详尽基础教程
本文所属标签:
为本文创立个标签吧:

Unity3D游戏引擎最详尽基础教程

来源:网络整理 网络用户发布,如有版权联系网管删除 2018-08-16 

身边越来越多的朋友问我关于Unity3D游戏开发,为什么呢?首先是因为专业,Unity3D非常强大,用它创建一个类似MiniGore这样的3D平面射击游戏简直轻而易举,而就连使命召唤这样的大型3d游戏,如果素材得当也不在话下。二是因为易用,他的操作非常容易,而使用的脚本语言又是JavaScript或者C#,不仅非常简单,也让各个种类的程序员都非常容易上手。再次,就是因为免费,如果你不使用Pro或者Mobile的内容的话,Unity3d就是完全免费的。还有就是对3D模型的兼容性,几乎任何3d模型都可以导入到unity中,可以说是一个很方便的特性。

今天,我就来讲讲Unity3D的基础操作,这可以说是一个新手必读吧,读完之后,你一定会惊叹,原来做一个游戏这么简单。

第一节 加入重力

新建一个场景(Scene),新建的时候应该会有对话框要求你加入哪些Asset Package,记得选择Physics Material,因为后面我们一定要用的哦亲

如果创建的时候没加,你可以再后来的Asset菜单里加:

之后,我们建立一个Cude,调整一下x和z的大小,我这里调成了25,让它变成一个地板,你也可以放一个texture上去,看起来更加真实,我这里从简,再创建一个sphere,在component中选择Physics中的RigidBody,前提是选中你的sphere物体,之后会看到这个Sphere的inpector中加入一个component叫做RigidBody,调整好Camera运行一下,你就会发现Sphere受到重力的影响自动掉落到地板上。

之后,通过我们之前引入的Physics Materials资源包,你还可以选择这个物体的物理性质,我这里选择Bouncy(跳跳),落下之后,这个物体就会蹦来蹦去的

第二节 检测碰撞

下面我们通过简单的JavaScript语句来检测碰撞,这在制作游戏中是很有用的,比如说检测到子弹和敌人的碰撞之后,可以使用我们后来要讲到destory命令消灭敌人。

这次我们新建一个Terrain项目,在用Grass贴图来覆盖住它,如果你找不到贴图的话,记得在Asset菜单里找找,看看哪些资源你还没有引入进去。

然后再加入一个Cube项目,我这里叫做PlayerCube,为他加上重力,之后选择bouncy性质,然后我们再新建一个Cude,调整y和z的值让他变成一堵墙,放置好,命名为Wall,别忘了给Terrain改名为Terrain,

之后我们在Asset菜单中建立一个JavaScript项目,改名为CollisionDetect,双击打开,如果你使用的是Unity 3.5的话,就会打开MonoDev,这是一个新工具还是很好用的,在其中新建一个函数,别管Start和Update函数,我们待会会讲。

加入以下代码:

如果看不懂这些代码的话,也没关系,JavaScript是最好学的编程语言,Google一下吧,保存这个JS文件,然后拖到我们的PlayerCube上。

这时候我们运行,就会看到PlayerCube到处蹦,碰到Terrain的时候,控制台就会显示Hit Terrain,碰到wall的时候就会显示Hit the wall。

第三节 检测用户输入

下面我们来讲一下如何检测用户的键盘和鼠标的操作。

就用我们上次的那个场景,这次我们给PlayerCube加上我们可以控制的动作。就是通过“wasd”或者上下左右键来控制移动。

请注意,如果要使用这里使用的方法来控制移动,那么所控制的物体不能够是一个物理世界的物体,也就是说你要把RigidBody这个component删掉,如果你想要在物理世界里移动物体的话,你就需要我们在下面会讲到的力(force)。

首先我们新建一个JavaScript文件,这里命名为InputDetect吧,输入下面的代码:

这时,我们运行这个游戏,就可以通过“WASD”来控制PlayerCube的移动了。

第四节 使用Prefab复制和控制物体

我们可以直接把Prefab看做是个妈,她能生好多小孩,如果妈妈的DNA变了,小孩的跟着变,就是说你可以用Prefab创建物体,然后通过这个Prefab修改所有这类物体的性质,这对于批量生成的敌人或者NPC来说很有用。

首先,先创建一个Prefab,我这里命名为“Mother”,之后新建一个Sphere物体,当然你也可以建一些其他的物体,之后给这个Sphere加上你想要的性质,我加入了RigidBody和Bouncy,之后将Sphere拖到Mother上,你会发现mother变蓝了,之后你就可以随意拖一些mother物体到屏幕上去,你会发现所有的Prefab创建出的物体在清单上都是蓝色的,说明他们都有共同的性质。


当然,作用于一个Prefab上的脚本也会作用到它的子物体上去。

第五节 使用Destroy命令消灭物体

我们游戏中怎么能够没有敌人呢?有敌人就得能够消灭他们,这时候,我们就会使用Destroy命令了。

在这里,我们使用上次Mother生出来的小球球作为敌银,一旦我们的PlayerCube碰撞到了小球的话,就是用Destroy让小球消失。

新建一个JavaScript脚本,输入以下代码:

这段代码很好懂吧,就是检验碰撞,然后销毁碰撞到的Mother物体,别忘了把Destroy的JavaScript文件拖到PlayerCube上去。运行一下,就可以看到碰撞到的物体都被消灭了。

第六节 使用Instantiate命令创造物体

我们直接在界面创造的物体都只是会在界面被初始化的时候加载,那么,如果为了节约内存或者其他什么事情,我想要在游戏过程中添加物体,那该怎么办呢?你猜对了,就是用instantiate命令。

这个命令就是英文实例化的意思,下面我们给碰撞之后消失的mother物体继续初始化一些,也就是说消灭了一些,又来了一大波

为什么非要用mother呢?因为只有拥有Prefab的物体才能够使用这个命令哦亲。

注意:这样的话,每次刷新一帧都会出现一个新的mother物体,你的内存也许会受不了哦,更合理的方法是按下空格键,然后出现一个新的物体,你可以自己做吗?试试看

你可能已经注意到了,每一个初始化的脚本都会默认有两个函数,就是:

Update()函数 每刷新一帧都会检查并执行

Start()函数 只在场景初始化的时候执行

第七节 使用Timer计时器

这次,我们要让一个计时器倒数,倒数到0的时候创建一个mother物体,来看Javascript代码吧:把这个脚本拖到GUItext控件上,你会发现我们所期待的效果。

更多精彩内容下期发布,,敬请关注。


名动漫Unity3D游戏开发班7.15号开班,更多详情咨询QQ2355845910


动一下你的手指,把这个好消息转发、分享给你的好伙伴哦【点击手机右上角的转发、分享到朋友圈】

订阅号:名动漫 添加微信(长按二维码可以直接关注哦)

新浪微博:@名动漫

名动漫官网:www.mingdongman.com

地址:

大学城校区地址:广州大学城南信息枢纽大楼703

广州车陂研发基地:广州天河区车陂大街28号



              查看评论 回复



嵌入式交流网主页 > 上位机技术 > Unity3D > Unity3D游戏引擎最详尽基础教程
 一个 我们 物体

"Unity3D游戏引擎最详尽基础教程"的相关文章

网站地图

围观()