Unity3d入门之路-Hit UFO 改进版

Hit UFO 改进版

改进飞碟(Hit UFO)游戏:

  • 游戏内容要求:
    • 按 adapter模式 设计图修改飞碟游戏
    • 使它同时支持物理运动与运动学(变换)运动
UML图及其分析

与原来相比,主要是ActionManager,这次为了使飞碟同时支持物理运动与运动学(变换)运动,所以实现了一个adpater,即通过IActionManager来支持多种动作。

在这里插入图片描述

实现adapter模式

实现adapter模式,重点就在于IActionManager,要控制飞碟同时进行物理运动和运动学运动。物理运动则主要是让飞碟具有刚体以及碰撞盒等部件,而运动学运动就是控制飞碟的一些简单的运动,transform的运动,实际上功能有重合。而为了让其同时进行工作,我让他们都继承于UFOFlyAction,不过一个是调用FixedUpdate(物理),一个调用Update。而IActionManager,则是一个接口,规定了动作管理器需要实现哪些功能。接下来展示一些关键代码,完整代码请看github

IActionManager:这里主要定义游戏需要的最重要的就是飞碟飞行的动作,还有游戏暂停与开始。接下来就可以在PhysicActionManager和FlyActionManager中实现它们。

public interface IActionManager
{
    void Pause();
    void Run();
    void StartThrow(GameObject disk);
}

PhysicActionManager:这次我直接不用直接继承某个action,而是使用一个ActionFactory来生成各种需要的动作(由于物理动作与运动学动作可以同时实现,所以不需要分多个动作,ActionFactory只生产FlyAction),物理动作主要调用action的FixedUpdate,这里的实现方式我是参考自优秀博客的,我认为ActionFactory已经能够很好管理动作的生成与复用了,所以可以减少这里一些动作管理,仅仅是对一个动作的生命周期进行管理,需要时就调用,动作做完就通知ActionFactory回收。但由于调用Action又需要用一个队列管理,所以更改也遇到瓶颈。

public class PhysicActionManager : MonoBehaviour, IActionManager, ISSActionCallback
{
    public
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值