内容纲要

GiF效果展示

设计思路

  • 玩家的移动,道路的延伸,
  • 平台的生成,平台的显示,平台的位置,
  • 金币的生成,金币的消失
  • UI,得分,金币UI,当前关卡,死亡,过关,换肤
  • 相机跟随玩家的移动

数据架构

  1. 单件类:
    Levelctrl:存放了玩家过关,死亡时需要调用的函数
  1. 基类:

    1. 玩家基类:

      • 道路材质
      • 玩家皮肤模型
      • 道路延伸的速度
      • 初始位置
    2. 平台基类:

      • 平台的预制体
      • 金币的预制体
      • 平台的数量
      • 平台的大小
      • NPC
  2. 玩家派生类:

    • 继承与基类数据
    • 定义四个bool变量分别为是否移动,是否死亡,是否开始,是否生成板子
  3. 平台派生类:

    • 继承与基类数据
    • 创建一个List存储我的平台生成信息
    • 创建一个Int表示我的平台显示标记

功能实现

  1. 玩家:

    1. 按住左键板子会不断的伸长,松开使其平躺
    2. 根据板子判断玩家的移动
  2. 平台:

    1. 平台信息的生成,根据是否为横向生成,如果同方向生成两个,下一个必定转向
    2. 平台根据信息生成GameObject并隐藏
    3. 平台根据玩家的位置判断是否生成
    4. 金币的生成
  3. 相机:

    1. 只跟随玩家一个轴移动
    2. 游戏过关时相机的移动
  4. UI:

    1. 玩家吃到金币时在金币的位置生成一个UI并且往上飞
    2. 板子平躺下来后根据距离判断得分的UI生成
    3. 玩家死亡后显示死亡UI点击播放广告然后重新加载场景
    4. 玩家过关后切换关卡
    5. 当前拥有的金币显示
    6. 历史最高分的显示以及当前获得分数的显示

难点解决

  1. 平台的生成时的转向
    • 解决方法:添加一个bool值,来判断我是否为横向生成
  2. 平台之间的距离计算
    • 解决办法:取到两个平台的位置相减然后取到长度(magnitude)并且减去两个平台的半径即可得到最小距离,同理取到最大距离即可
  3. 玩家的转向
    • 解决办法:取得下一个平台的位置,并使用LookRotation返回一个四元素并用差值使玩家转向该目标
  4. 金币UI的生成
    • 解决办法:当玩家吃到金币后在屏幕坐标位置生成一个UI即可
  5. 相机的视角
    • 解决方法:把相机改为正交相机

注意事项

  1. 数据要提前配置

具体实现

【此处内容加入VIP后可见,咨询QQ:1517069595】

广告的实现

  1. 当玩家死亡时调用广告

  2. 脚本的实现
    【此处内容加入VIP后可见,咨询QQ:1517069595】

发表评论