Unity快速上手教程(一):拉方块

作者:四五二十 2018-12-29




前言

大家好。

之所以想到开这样一个系列,是鉴于很多初学者存在这样的问题:面对庞大而内容繁多的Unity界面,不知道哪儿是哪儿,不知道从何下手。

也因此,本系列属于新手向,主要作用为帮助接触Unity时间较短的同学熟悉一些组件的应用,比如某某组件该怎么查找,组件属性怎么修改调用等等,通过短时间做成一个有特定功能/玩法的小项目,来迅速理解和记忆各常用组件。具体的代码设计方面不用过度纠结,咱们的主要目的不在这里。

闲话少叙,我们开始。

效果和主要功能展示

1.在场景中有一个机器小人(Player)在地图上移动,上半身可以随着鼠标方向旋转,下半身可以随移动方向滚动;


2.双手可以进行释放拉伸技能,当拉伸技能正在进行时不能移动和旋转;


3.当有Cube出现在双手拉伸范围内,则可以将其抓过来进行搬运(想象一下英雄联盟中蒸汽机器人的Q),手里抓住Cube时不能释放拉伸技能,除非放下Cube;


4.每个Cube在场景中拥有寻路功能,循环绕着四个寻路点走;


放一下预览效果:

如果布里茨的Q有这个速度那LOL根本不用玩了

过关条件:

1.每个Cube在靠近和自己颜色一样的灯柱时,灯柱上的灯会亮,离开则会熄灭;



2.当四个灯同时亮时,视为通关;



详细步骤

一.搭建场景:

1.创建一个空物体当我们的主角(Player),下身的黑球(Foot)展示移动功能,上身(Body)可以独立于下身带动双手旋转,双手臂(DoubleArm)和双手掌(DoubleHand)分开放;



2.左手(LeftHad)和右手(RightHand)都添加上TrailRenderer轨迹组件;


3.随机创建4个Cube和4个寻路点和4根灯柱;


二.代码实现:

1.首先,主角有三个功能,分别是旋转,移动和释放拉伸,所以创建了这里三个脚本,都挂在Player上:


2.先创建ReleaseSkill释放(拉伸)脚本,挂Player上;

(1)首先声明一些需要用到的字段属性;


(2).创建一个显示手掌运动轨迹的方法:


(3).创建一个释放(拉伸)技能的方法,


(4).再创建一个拉伸的实现方法,展现具体实现细节,在Update里每帧调用;


(5).拿到Cube后保持让Cube在手里拿稳,所以再创建一个拿稳方法,在Update里调用;


(6).在Update里调用情况:


3.创建BodyRotate身体旋转脚本,内容较少,直接全部粘贴:


4.创建主角移动类PlayerMove脚本:

(1).首先声明一些需要用到的属性变量:


(2).在Update里的调用:


5.Cube们需要寻路,创建寻路脚本挂每个Cube上:


6.要让Cube靠近自己颜色的灯柱就亮灯,需要进行几个步骤:

(1).每个Cube和自己颜色相同的寻路点设为同样标签;


(2).每个寻路点(空物体),添加BoxCollider组件,勾选IsTrigger:


(3).创建灯光触发脚本,给每个寻路点都挂上;


7.过关条件:四个灯都亮:

(1).创建一个Panel1,当通关时启动:



(2).再创建一个Panel2,游戏时按Esc建随时启用:



(3).创建一个关卡脚本,编写通关方法:


8.小地图制作:

(1).新建一个摄像机作为小地图摄像机MapCamera,在Project面板创建RanderTexture;

(2),将RanderTexture拖入MapCamera的TargetTexture组件设置中,这样MapCamera渲染的画面就会实时出现在RanderTexture里;

(3).在UI里创建RawImage,将RanderTexture挂在它的组件设置里,Rawlmage将实时接收MapCamera渲染的图像;

9.完成以上步骤,demo就能像上面的动态图那样动起来啦。至于一些锚点设定,各个物体移动速度等可凭喜好自行设定。

有任何不理解或有疑问的地方,欢迎留言讨论_(:з」∠)_。

专栏地址:https://zhuanlan.zhihu.com/p/35900563

最新评论
暂无评论
参与评论

商务合作 查看更多

编辑推荐 查看更多