布置场景:
我们首先要创建一个新场景就叫level1,
我们在project面板中找到这张图
我们在新建的Canvas上创建一张background把这张拖进去点击Set Native Size
然后改变一下canvas
改变点还挺多的首先render mode是根据摄像机的World space,order in layer调低点保证是最底层然后坐标得是整数
最主要的是它的Scale,我们要让它的Canvas和摄像机完全吻合,但canvas本身大小非常大,因此需要计算缩小倍数这里有个老师计算的很好。
就是说一格是160×160,canvas的宽度为1920,所以一行的格子数量为1920/160 =12,
而1个世界单元等于1个草地宽,所以我们要12个世界单元格当我们需要的宽度,因此缩小比例为
12 /1920 =0.00625.
还就那个论证成功,
再放两个树上去
制作动画:
之前的文章我也教过怎么制作动画以及复杂的动画状态机切换过渡状态等等,但都是把人物直接当成正题,没有分开过处理,而如今对动画的高精度判断需要我们分开来处理
(测完核酸了,继续回来写)
这里看到我们的Sprites文件夹啊有各式各样的素材,
这里我们先创建一个敌人就这个名字叫做Lizard的鳄鱼
我们先把他三个Multiple图片的PIxel Per Unit改成100
如果是之前的我的话肯定想当然的拖一张图片进来然后改名字再把连着的图片Shift一起拖进来制造动画,今天我们要做点不一样的。
首先创建一个空对象就叫Lizard然后给它创建一个带有sprite renderer的子对象
这里我选择的是序号为4的图像作为它的Sprite
然后创建一个animator controller和两个animaton给它
接下来我们制作动画机
这次我没有使用过渡条件,而是直接将过渡时间设置为1,即播放完jump动画一秒后播放walk动画,别忘了要取消jump的looping
然后我们点开animation窗口(如果你找不到的话可以在菜单栏的Window下拉框中点开)
我们点击创建好的animation文件然后Add Propetry找到子对象body的sprite点击右边的+号
(这里我没有是已经添加了)
删除自动生成的两张然后把整个序列图拖进来拖到时间轴0.00的位置,把Samples改为24,
还有另一个animation叫walk
搞完后别忘了给它rigibody2D和collider2D
OK接下来我们搞搞我们的Defender即植物
创建一个名字叫Cactus的空对象,找到同名的仙人掌,创建一个Body和Gun(发射子弹的位置)
我们同样创建好animation和animator并先挂载好(同样间隔一秒)
这是它的Idle动画还是老方法
这是它的Attack动画和上一点设置的有点不同的是,当它发射子弹的时候我们可以改变它的颜色,我选的是第24帧的时候,这时候给它一个动画事件即可(下篇再讲)
最后我们再设置一个向日葵用来产星(相当于太阳)请把同名的Sprite拖进来,这时候分开的优势就体现出来了。向日葵的Top,Base以及生产star的动画都可以在一个animation中分开来。
我可以改变Top的颜色,然后改变Base 的Rotation让它晃起来,最后再改变Star的Scale(刚开始要默认为0,0,0)
游戏效果:
可见已经运行成功了,动画播放成功