记学习Unity后第三次做游戏
接着上会继续讲,上回讲到了资源和场景的预处理方法,这次要往场景里面添加元素及创建预制体,上次已经调整好了画布和摄像机在场景中的位置,以及各物体在场景中的UI大小,这次就可以准备预制体的制作了。
首先是地图有关的,一张张地拖到Hierarchy
面板当中去,记住是一张张的拖,,那些需要有动画效果的先不要拖,暂时先搁置,如果几张一起拖的话你会发现创建了一个新的文件要你重命名,这个操作接下来讲。拖好后把这些都选中,把他们的Transform
组件都Reset
一下,这时如果你的地图设置为20*20的,并且分辨率也设置过了,那么需要调整Transform
组件的Scale
缩放来适配你的分辨率和地图,直到大小都合适,地图长宽刚好可以放下20个墙,这样就可以了,还有玩家和敌人的UI大小要比墙稍微小一点,这样过缝隙的时候可以好过一点。
设置好上面那项再进行拖拽会省事很多,不然一般还要一点一点对齐。
现在再来设置那些有动画效果的游戏物体,比如资源中的river,有两张被分割好的图片,直接把那两张图片选中拖入Hierarchy
面板中,出现创造窗口时,把文件名改为River,创建Animation
Animation Controller
文件夹,文件保存在Animation
文件夹下,资源目录下就会多出两个文件夹,另外Hierarchy
下也会多出一个游戏物体,物体上会有Sprite Render
精灵渲染器和Animator
动画机两个组件,这时的river就变成动画了,直接做成预制体就可以用了。设置播放速度的话是在Window=>Animation=>Animator里面设置,点击打开窗口里面的River,右边有Speed
的选项修改速度,默认为1。当然,这样添加动画只适用于单个动画操作,例如玩家和敌人的动画还是需要另行添加的。
现在就要进行分析了,墙可以被摧毁,阻挡玩家前进,子弹碰撞后要销毁,所以墙要添加Box Collider2D
碰撞器;草丛可以穿过,且玩家进入会被隐藏,墙的优先级要比玩家高(在属性面板中的精灵渲染器中,叫层级中的顺序:Order in Layer
,调高就是优先级高,在上层显示);玩家和敌人与地图的物体都会碰撞,且玩家移动会发出声音,但是只有collider的话是不能碰撞到的,需要添加刚体组件Rigidbody2D
和声音Audio Source
组件;等等之类都是相同的,在Inspector
面板里每个物体还可以添加Tag
来便于区分,也方便代码的撰写。
这样差不多地图的逻辑也弄好了,画面右边要放置一个带collider的物体来作为UI面板,上面放置一些Text
来存放玩家生命之类的。玩家的动画播放需要在玩家的身上添加四个动画效果,分别是上下左右,分别以拖拽的方法添加四个Animation
后,打开动画机将四个创建好的Animation
都拖入到动画机里面,动画机的入口是向上的动画,因为生成玩家的第一时间玩家就是向上的状态,然后右键Any State
加联系到四个动画机上,因为有可能从上突然变到下了,就是从任何状态都有可能变到其他状态,然后在左边面板添加跳转条件,因为代码是有Horizontal
和Vertical
共同控制移动,所以加入的条件便是h和v的变化,h>0就转向右边,v>0就转向上边,左边添加完就点击连线,Conditions
下面看情况添加h和v,然后设置less0或greater0。
点击连线后的右边设置一定要像我这样设置!,不然动画播放后会出现奇怪的事情,具体可以自己试验下。
到这里场景的搭建和素材的准备基本已经充分了,剩下的就是代码逻辑部分了,这篇文章的内容就到这里了,到这期结束之后我会把工程源码和资源包都以网盘链接发给大家的,谢谢观看,有不对的请大家提出,多多担待。