1.准备工作
新建2D项目命名为2D Roguelike,导入官方资源。保存场景命名为Main。
2.动画制作
Assets文件夹下新建2个文件夹Animations和AnimatorControl。新建空对象命名为Player,打开Sprites文件夹下精灵并展开,将前6个小人儿画一起拖入(点第一个摁住shift点最后一个),会自动弹出保存动画对话框,存入Animations文件夹下并命名为PlayerIdle。
把Animations下的Player动画控制器拖入AnimatorController文件夹下。接着拖入另外两个小人儿动画,命名为PlayerChop和PlayerHit(具体拖入哪些精灵看官方视频)。每个游戏对象可有多个动画,但只能有一个动画控制器。双击Player动画控制器,单击橙色方框的PlayerIdle将Speed改为0.5(动画速率)。
将游戏对象Player的Tag 选为"Player",Lay选为"BlockingLayer",Sprite Renderer下的Sorting Layer选为"Units"(列表最后一个,即 最后被渲染,在游戏图层显示为最上层)。为Player添加Rigidbody2D和Box Collider,将Rigidbody2D的Body Type改为Kinematic。(我们将用脚本来控制移动),Box Collider的Size改为(0.9,0.9)(比其本身体积稍小,使得运行后player看上去与其他对象接触 了后触发)。将Player拖入Prefabs文件夹成为预制件。
如法依次制作Enemy1的游戏对象及其动画,将Enemy1的动画控制器拖入AnimatorController。并添加Rigidbody2D和BoxCollider,制作完毕后将Enemy1拖入Prefabs。
接着把Enemy1改名为Enemy2,拖入Enemy2所需的动画。我们看到Enemy2的动画控制器和Enemy1的一样,动画控制器,把Enemy2的动画从控制器里移除,因为两个敌人的动画切换逻辑是一样的。所以在AnimatorController文件夹内新建Animator Override Controller命名为Enemy2,将新建的动画改写控制器的Controller选为Enemy1,(意思是该改写控制器的父对象是Enemy1 动画控制器),并替相应动画。
切回到Hierarchy下的Enemy2,把Animator组件下的Controller替换为Enemy2动画控制器,接着把游戏对象Enemy2拖入prefabs,并删除Hierarchy下的Enemy2。
3.其他对象预制件(Tile Prefabs)
先添加地板,新建空对象命名为Floor1,添加Sprite Renderer,将Sprite选为所需对象,Sorting Layer选为Floor。然后将Floor1拖入Prefabs,接着将Floor1改名为Floor2,并更换精灵,拖入Prefabs。依次把所有地板预制件制作好(共有8种地板)。
接着制作出口,把Floor8更名为Exit,Tag改为Exit。精灵更换好,Sorting Layer改为Items。为Exit添加Box Collider2D并勾选Is Trigger。拖入预制件。<