博客
关于我
Unity Crazyball复现
阅读量:369 次
发布时间:2019-03-04

本文共 1090 字,大约阅读时间需要 3 分钟。

实验4: Unity Asset Store游戏Crazyball复现

在 UE4 转向 Unity 的过程中,我逐渐被其灵活性和简洁性所吸引。这个实验主要记录了我学习 Crazyball 游戏代码结构以及 Unity 动画效果实现的过程。

一、实验要求

目的: 完全复刻 CrazyBall 游戏的内容及其功能,可添加内容但不能删减。

要求: 完全复刻指定游戏的内容及功能,确保核心玩法和用户体验保持一致。

拓展内容:

  • 球体具有生命值,多次碰撞后死亡
  • 碰撞时具有"弹性变形"特效
  • 二、软件核心代码

    在 UE4 转向 Unity 后,我参考了 Crazyball 的示例程序,尽量保持代码结构一致。并在此基础上添加了鼠标切换操作模式的功能。

  • 基础功能实现
    • GameController.cs: 用于控制游戏模式、关卡难度、敌方小球和障碍物的生成
    • PlayerManager.cs: 用于监测玩家与敌方小球、障碍物的碰撞,控制玩家分数和血量
    • PlayerController.cs: 用于控制玩家小球的移动和边界检测
    • EnemyBallController.cs: 用于控制敌方小球的移动和销毁
    • PauseManager.cs: 用于实现暂停功能和操作模式切换
    • MenuManager.cs: 用于控制主菜单界面和点击操作
    1. 附加功能实现
      • 球体生命值系统

        • 在代码中添加血量变量,并通过 UI 显示血量
        • 在碰撞时扣除血量,血量为0时触发游戏结束
      • 弹性动画特效

        • 使用 Animator 实现两段动画状态切换
        • 碰撞时切换到弹性形变状态,动画播放完毕后恢复正常状态
      • 操作模式切换

        • 在暂停界面添加 ChangeMode 按钮
        • 修改 PlayerController 中的操作模式变量
        • 在 PauseManager 中实现操作模式切换功能

      三、游戏运行效果

      目前已实现以下功能:

    2. 基础游戏流程
    3. 关卡难度控制
    4. 敌方小球和障碍物生成
    5. 球体碰撞检测
    6. 玩家血量系统
    7. 弹性动画特效
    8. 操作模式切换
    9. 四、实验心得

      从 UE4 转向 Unity 的过程中,我深刻体会到两大开发框架的不同。Unity 的语法简洁直观,项目迭代速度快,适合快速原型开发和优化。

      在开发过程中,我参考了 Crazyball 的代码结构,并结合自身需求进行了适当修改。通过实验,我掌握了 Unity 动画系统的使用方法,特别是在状态切换和特效实现方面积累了宝贵经验。

      尽管过程中遇到过不少技术难点,但通过查阅资料和不断调试,最终都能找到解决方案。这次实验让我对 Unity 的开发流程有了更深入的理解,也为后续项目积累了宝贵的开发经验。

    转载地址:http://wnyg.baihongyu.com/

    你可能感兴趣的文章
    Openlayers实战:自定义放大缩小,显示zoom等级
    查看>>
    Openlayers实战:自定义版权属性信息
    查看>>
    Openlayers实战:输入WKT数据,输出GML、Polyline、GeoJSON格式数据
    查看>>
    Openlayers实战:选择feature,列表滑动,定位到相应的列表位置
    查看>>
    Openlayers实战:非4326,3857的投影
    查看>>
    Openlayers高级交互(1/20): 控制功能综合展示(版权、坐标显示、放缩、比例尺、测量等)
    查看>>
    Openlayers高级交互(10/20):绘制矩形,截取对应部分的地图并保存
    查看>>
    Openlayers高级交互(11/20):显示带箭头的线段轨迹,箭头居中
    查看>>
    Openlayers高级交互(12/20):利用高德逆地理编码,点击位置,显示坐标和地址
    查看>>
    Openlayers高级交互(13/20):选择左右两部分的地图内容,横向卷帘
    查看>>
    Openlayers高级交互(14/20):汽车移动轨迹动画(开始、暂停、结束)
    查看>>
    Openlayers高级交互(15/20):显示海量多边形,10ms加载完成
    查看>>
    Openlayers高级交互(16/20):两个多边形的交集、差集、并集处理
    查看>>
    Openlayers高级交互(17/20):通过坐标显示多边形,计算出最大幅宽
    查看>>
    Openlayers高级交互(18/20):根据feature,将图形适配到最可视化窗口
    查看>>
    Openlayers高级交互(19/20): 地图上点击某处,列表中显示对应位置
    查看>>
    Openlayers高级交互(2/20):清除所有图层的有效方法
    查看>>
    Openlayers高级交互(20/20):超级数据聚合,页面不再混乱
    查看>>
    Openlayers高级交互(3/20):动态添加 layer 到 layerGroup,并动态删除
    查看>>
    Openlayers高级交互(4/20):手绘多边形,导出KML文件,可以自定义name和style
    查看>>