首页开始场景

初始场景内共有三个脚本

通过Button挂载调用事件

实际上Button都是自带一个事件处理器的, 你可以指定一个脚本的一个方法作为点击事件, 这里用作了显示Controls UI

Cursor类

这个用于指定鼠标样式,和时候锁定鼠标, 其中Start里面进行了解锁鼠标,并设置为了可见.

EventSystem.current.currentSelectedGameObject 可以获取或者赋予选中哪一个UI, 此时被用作选中开始按钮

之后点击按钮开始游戏.

这里判断点击用的是 Submit 字符串.

场景跳转解析

进入Main场景, 这里有很多的预制体和脚本, 我们还是按照教程来进行解析.

查看GameFlowManager脚本

Update中循环检测是否完成全部目标或Player死亡.
之后进入EndGame中.

  1. 显示并且解锁鼠标.
  2. 之后设置游戏结束状态为True.
  3. 打开结束画布
  4. 判断胜负
    1. 胜利
      1. 设置结束场景为Win场景
      2. 结束时间为当前时间+3f+4f
      3. Add一个AudioSource播放VictorySound音效,并设置到一个混音组.
      4. 设置延迟播放2f
      5. 生成一个带有Msg的预制体,并设置销毁时间2f,移动其到列表底部
      6. Msg等待时间后, 生成自带的MsgPrefab,并传入m_DisplayMessageManager的TransForm
      7. 最后实际上就是显示了一个消息UI, 缓慢显示动画
      8. 之后回到结束选项, 此时还需要处理当前屏幕透明度, 声音缓慢消失, 到时间之后直接跳转场景
    2. 失败
      1. 设置场景名为Lose场景
      2. 设置结束时间为当前时间+3f