|
文/四五二十
前言
大家好。
之所以想到开这样一个系列,是鉴于很多初学者存在这样的问题:面对庞大而内容繁多的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
|
|