‫好吧, 我会的
‫我们来看看如何开始这个游戏｡
‫到目前为止, 我们只是简单地在Unity中启动游戏, 但我们希望在游戏中启动游戏,
‫这样玩家就可以通过按空格键来启动游戏｡
‫因此, 让我们通过创建一个新脚本来实现这一点｡
‫让我们转到脚本, 创建C-sharp脚本, 我将其命名为Game Manager｡
‫它将控制我们的博弈状态｡
‫因此, 让我们在这里也创建一个游戏风格的游戏管理器游戏对象｡
‫游戏管理器, 让我们将该脚本直接拖到游戏管理器中｡
‫我将重置游戏管理器的位置, 以便它被清空并处于零位置｡
‫好吧, 我会的
‫让我们来看看游戏管理器｡
‫正如你所看到的, 它已经在Unity中得到了一种不同的图标, 因为游戏管理器是一个非常特殊的脚本,
‫正如我所说的, 它将照顾我们的游戏状态｡
‫所以游戏管理器会很简单｡
‫我们现在不需要启动或更新方法｡
‫我们只需要一个布尔值, 它表示我们的游戏是否开始｡
‫所以public bool game开始了, 我将创建一个方法, public void start
‫game, 我将把它公开, 这样我就可以访问它, 或者从游戏管理器本身之外使用它｡
‫我来自另一个脚本, 在这里我做的唯一一件事就是每当调用start方法时, 把game started设为true,
‫这是我们的游戏开始时唯一发生的事情.
‫布尔值设置为true｡
‫现在, 在控制器中,
‫我们需要访问游戏管理器, 因为我们要做的是, 每当玩家按下空格键时, 固定的更新方法应该能够识别并启动游戏｡
‫所以让我们开始吧｡
‫我们来创建一个私有的游戏管理器, 我们称之为游戏管理器｡
‫所以现在在Awake方法中我需要初始化它, 否则我们的游戏管理器将为null, 我们将得到一个错误.
‫我们来解决这个find对象的类型, 我们把它叫做一个游戏管理器, 因为我们只是在搜索一个, 有或者是游戏管理器类型的对象,
‫我们只有一个, 那就是游戏管理器？
‫所以我们想要一个包含脚本的文件, 我们想要访问它｡
‫所以我们现在可以做的是检查游戏是否还没有开始｡
‫所以是博弈管理器, 而不是博弈管理器, 博弈开始了, 也就是说布尔博弈开始是假的.
‫然后返回｡
‫所以什么都别做｡
‫因此, 让我们保存该脚本并返回到Unity｡
‫你看
‫让我们开始我们的游戏｡
‫我们可以看到玩家没有移动｡
‫游戏还没有开始｡
‫然而, 动画仍然存在｡
‫所以我们的播放器仍然在动画中, 我们应该解决这个问题, 因为这不是一个好的状态｡
‫我们有一个球员在这里, 他在假装跑动｡
‫这不好玩, 所以我们需要改变它｡
‫事实上, 这很有趣, 但我们需要改变这一点｡
‫我们来创建一个新的状态, 因为这里只有运行和下降两个状态, 所以我们可以运行,
‫这很好, 也可以下降, 这不太好, 但我们也可以无所事事.
‫我们创建一个空状态, 称之为空闲状态, 你们猜对了吧？
‫在我们的资产中有一种运动, 它被称为闲置｡
‫所以我们可以使用这个动作, 这是一个动画, 当玩家空闲的时候｡
‫现在我们要把这个空状态转换到空闲状态｡
‫我们该怎么做呢？
‫你不能就这么拖着它走｡
‫您需要做的是将其设置为层默认状态｡
‫现在, 我们的空闲状态将成为层的默认状态, 这意味着它从这里开始｡
‫所以入口直接进入空闲状态｡
‫那太好了
‫但现在我们不能运行动画｡
‫让我们看看它是什么样子的｡
‫所以你看, 我们的人在移动｡
‫他还有呼吸｡
‫如果你仔细看的话, 他只是动了一下｡
‫因此, 现在我们需要做的是从空闲状态转换到运行状态｡
‫当然, 我们需要在这里有一个行为或者一个条件｡
‫所以从《偶像》到《奔跑》是一个过渡, 我们需要调整｡
‫所以让我们添加一个条件｡
‫但到目前为止, 我们只有下面这个条件, 这不是我们需要的条件｡
‫我们需要知道游戏是否已经开始, 因为如果游戏已经开始, 我们希望运行动画开始｡
‫因此, 在参数中, 我们创建一个新参数｡
‫所以你可能知道该怎么做｡
‫你可以再用一次扳机｡
‫所以让我们创建一个新的触发游戏开始｡
‫我会调用这个触发器, 现在我们可以打开这个过渡, 然后移动或者选择这个博弈开始的过渡.
‫现在我们可以点击这里, 选择游戏开始触发这里｡
‫所以这是一个游戏必须开始的条件, 当然我们也可以在这里设置｡
‫因此, 如果游戏管理器game started不是false, 这意味着它是true, 那么我们要使用anim点设置game
‫started的触发器｡
‫这意味着我们将在这里开始我们的游戏, 我们将在这里开始动画｡
‫所以, 让我们保存该脚本并检查它｡
‫我们仍然有一个问题, 我们不能开始游戏, 我们可以按回车键,
‫然后我们的球员轮换, 但我们还没有开始游戏与游戏管理器｡
‫那就这么办吧｡
‫让我们转到游戏管理器并添加一个｡
‫私有void更新方法｡
‫在这里, 我们只检查输入｡
‫所以如果输入点get键, 键码就说是return｡
‫所以只要有人按回车键, 我们就想让游戏开始｡
‫然后继续调用start game方法, 这意味着只需将game started布尔值设置为true｡
‫让我们来测试一下｡
‫让我们暂停游戏, 然后再运行一次｡
‫如果我们开始, 我们会看到我们的球员｡
‫我们继续按回车键, 如你所见, 我们的玩家在很长一段时间后才开始奔跑,
‫尽管他已经在空中漂浮了.
‫这并不好｡
‫我们可以很快改变这种状况｡
‫让我们来看看闲置动画｡
‫在这里, 让我们进入过渡, 我们可以选择现在有一个退出时间｡
‫所以我们不希望有这个退出时间, 因为现在我们的动画将完成｡
‫只有在这个空闲动画（大约需要4秒）结束后, 我们才将进入运行状态, 我们不希望这样,
‫因此我们可以停用退出时间｡
‫这意味着它将直接转到我们的运行动画,
‫同时我们希望将我们的运行动画或运行状态向右移动一点, 这样它就不会出现任何过渡｡
‫如果我们只是移动运行, 我们总是会回去｡
‫所以我们需要把这一部分移到Idol状态的末尾, 然后我们进入run状态｡
‫好吧, 我会的
‫现在让我们再次测试一下, 看看按下回车键后会发生什么｡
‫如您所见, 它直接进入运行状态｡
‫现在你可以做同样的事情, 用这个已经退出到你下面的状态｡
‫让我们来看看｡
‫让我们按下回车键, 然后我们摔倒, 我们仍然跑两三步, 然后我们做摔倒的动画｡
‫所以你也可以在这里做同样的事情｡
‫让我们继续更改退出时间, 然后转到｡
‫直接尾随｡
‫现在我们再来一次｡
‫我们来看看｡
‫如果我们直接坠落或者不坠落, 我们可以看到我们直接坠落｡
‫所以一旦我们停止下落, 我们仍然可以旋转｡
‫但是一旦我们停止下降或开始, 我们就会从下降动画开始｡
‫好吧, 就这样｡
‫现在我们可以在下一个视频中开始游戏｡
‫我们将看看如何重新开始比赛｡