MAD:游戏DevLog#2

大家好 devlog号码#2的时间

在上周,我们实现了透明墙和播放器动画状态机。 Max继续为游戏设计精灵,而Andrei实施了炸弹动画,它正在研究一些敌人。接下来的一周,我将尝试实现并完成UpgradeManager,这是一个Singleton类,可以处理调度播放器的上电。

透明墙是使用Raycast实现的,墙将向上投射光线,如果它检测到玩家对撞机,它会将其alpha值降低到50%,当光线没有碰到任何alpha值达到100时%。在下图中,使用红线绘制了光线投射:

当我第一次尝试播放播放器动画状态机时,我很快就迷路了,我很快放弃了这个想法。我尝试用混合树实现它,希望它能以这种方式工作,但事实并非如此。

混合树用于平滑地混合多个动画,当你在2D中有一个步行/跑步动画时,你想在X为-1且Y为Don'tCare时播放“WalkLeft”动画。要实现这一点,Unity为我们提供了混合树:

这种方法的问题在于,当你有idleLeft和runLeft时,它不起作用,因为当X和Y都为0时,混合树不知道要选择什么空闲。休息之后,解决方案就突然出现在脑海中:使用状态机而不是混合树。从任何状态,您都可以进入RunX状态,但在完成RunX状态后,您将转换到IdleX。

这可以按预期工作,但通过权衡,你不能移动对角线。每个过渡都有一个附加到其上的AnimationX或AnimationY的规则,如果同时更改X和Y,则随机跳转到RunX和RunY动画,使其看起来像一个小故障。

在Unity X和Y中是状态机的自定义参数,它不一定需要是游戏对象的X和Y位置。您可以调整移动处理代码,将AnimationX和AnimationY设置为更喜欢这两个中的最大值,并将另一个设置为0。

为了在这个项目上合作,我们使用Github代码和Google Drive进行资产共享。

如果你想为你的Unity项目使用Github,我建议你生成一个正确的.gitignore文件。

谢谢阅读

如果你想知道标题MAD来自哪里,它就来自我们的名字:Maxi,Andrei和Denis。由于这是我们的第一场比赛,并且首次尝试一起做某事我不知道选择什么名字。

如果您想开始使用Unity开发您的第一个游戏,我们发现以下视频讲座非常具有动力和帮助:https://learn.unity.com/tutorial/your-first-game

资讯来源:由0x资讯编译自DEV,原文:https://dev.to/denisnutiu/mad-game-devlog-2-476b ,版权归作者所有,未经许可,不得转载
你可能还喜欢