‫你好, 欢迎｡
‫在这节课中, 我们将介绍这段代码,
‫RT actor range, 看看它如何允许我们迭代给定级别中的所有actor｡
‫让我们深入了解一下它是如何工作的｡
‫因此, 在我们的杀死所有游戏模式的兵杀死的时刻, 我们称之为游戏已结束的球员控制器, 但实际上游戏已结束是一个功能上的所有控制器,
‫其中有A.
‫我或者玩家控制器, 我们应该通知人工智能控制器游戏已经结束了,
‫这肯定会发生, 或者这也会让赢的条件变得更容易, 因为我们不一定会让玩家兵进来.
‫那么我们该怎么做呢？
‫我将在KML游戏模式下创建一个新函数, 一个私有函数, 叫做End Game,
‫它将负责这个动作.
‫所以结束游戏需要一些信息｡
‫它需要知道谁赢了｡
‫是球员还是A｡ I.什么？
‫所以我要在这里创建一个布尔值, 叫做B is playerwinner.
‫这将告诉我们是应该告诉人工智能它赢了还是告诉玩家它赢了｡
‫因为记住在这里我们的游戏已经结束了｡
‫采用布尔值, 告诉控制器它是否是获胜者之一｡
‫因此, 我们要做的是弄清楚, 首先, 让我们继续创建实现｡
‫我将执行控制移位P, 然后创建实现｡
‫然后我们要找出如何找到场景中的所有控制器, 这样我们就可以在这些控制器上调用游戏结束｡
‫现在我们要做的是使用引擎助手调用｡
‫如果我们使用hash include, 我们首先要使用引擎实用程序｡
‫这将把我想要的辅助对象带入到作用域中, 这个辅助对象叫做T参与者范围, T参与者范围是一个模板｡
‫所以我们可以在这里用尖括号｡
‫我们可以放一个控制器, 然后放括号, 得到world.
‫这有什么用？
‫它会返回一个range对象, 基本上类似于一个列表, 包含所有的控制器.
‫这就是为什么我们在世界a中有控制器参数｡ k､ 我们可以在for循环中使用它｡
‫让我开始用for循环来包装它｡
‫所以我们要对A控制器执行｡
‫所以我们要处理的变量是一个A控制器指针, 我称之为控制器.
‫然后我们用冒号来表示我们要覆盖的范围｡
‫它将是这个T活动范围｡
‫然后我们可以用右括号和花括号｡
‫这句话是什么意思
‫我们将对世界上的每个控制器执行四个循环, 它将位于称为控制器的变量中｡
‫现在有几件事你可能需要知道｡
‫因此, 我们可以查询控制器是否为玩家控件, 而无需强制转换｡
‫实际上, 我们可以只画控制器箭头, 然后我想我需要在这里包括我的控制器｡
‫哈希包含在顶部, 我们要做一个游戏框架, 正斜杠控制器H, 现在自动完成可能会工作｡
‫是的, 的确如此｡
‫所以我们能做的就是我们可以称之为游戏结束｡
‫这是我在这里的第一个自动补全程序, 也可以说是玩家控制器｡
‫基本上它会说, 在玩家控制器的世界里,
‫它会让我们决定, 是否应该在游戏结束时, 输入真或假｡
‫所以我的挑战是用正确的布尔参数来填充这个for循环｡
‫所以我们要这样做,
‫基本上它应该是真的, 如果我们正在和for循环中的控制器对话的控制器是一个播放器控制器, 并且我们传递的布尔值说播放器控制器是赢家也应该是真的｡
‫如果不是玩家控制器, 也不是玩家, 玩家就是赢家, 基本上就是说, 如果这是一个盟友, I是赢家,
‫如果玩家控制器, 但玩家不是赢家, 则为假, 如果不是玩家控制器, 但玩家是赢家,
‫则为假｡
‫希望你能明白事情的发展｡
‫所以暂停视频, 试着像这样实现它｡
‫您可以使用if陈述式｡
‫您可能会使用一些其他逻辑来计算这个布尔暂停视频并尝试一下｡
‫好吧, 我会的
‫欢迎回来｡
‫所以你可以用很多方法来做｡
‫一种方法是如果蜜蜂是参与者, 控制一个赢家然后我们在if语句中输入一些东西我们可以在这里做一个布尔运算来决定B基本上是参与者控制者.
‫我们要做一个控制器来保存它｡
‫箭头是这样的球员控制器｡
‫然后我们可能会说, 好吧, 我们要调用控制器｡
‫Arrow游戏已结束｡
‫我们现在要传入null指针｡
‫然后我们会说, 如果赢家是参与者而我们是参与者的控制者, 那么是的,
‫基本上就是这个值.
‫所以玩一个控制器｡
‫否则, 如果不是玩家控制器, 它就会失败｡
‫我们可以否定这个, 所以我们可以说, 这里我们要做的是,
‫控制器博弈已经结束了, 不是玩家控制器, 因为我们说玩家不是赢家, 在这个陈述中眼睛是赢家｡
‫所以我们想说的是, 这取决于是否基本上与参与者赢了相反, 也就是说眼睛赢了.
‫所以这是一种肯定的方法｡
‫但还有另一种更简单的方式, 那就是简单地说, 我们是赢家吗？
‫所以是赢家｡
‫而这可以简单地说, 你是否是玩家控制者就等于是玩家赢家｡
‫现在让我们再仔细思考一下, 我会完整地完成这个, 然后我们再讨论它｡
‫所以我们会说控制器博弈结束了, 是空指针, 这里传递的是赢家.
‫现在, 为什么这个说法有效呢？
‫好吧, 让我们想想那些案子, 好吗？
‫所以我们有一个玩家控制器在这里, 玩家是赢家, 然后呢？
‫是的, 我们是赢家, 他们是平等的｡
‫千真万确｡
‫如果这不是玩家的控制器, 玩家也不是赢家呢？
‫好吧, 那么这是假的｡
‫这里的这个也是假的所以两个相等结果是赢家.
‫这是真的吗？
‫是的, 因为如果我们是人工智能, 而人工智能是赢家, 那么我们应该是赢家｡
‫否则, 如果这两个不相等, 我｡ e.计算
‫我们有一个人工智能控制器, 但玩家是赢家, 或者我们有一个玩家控制器, 人工智能是赢家, 那么我们将有一个真和假或假和真｡
‫这两个值不相等布尔值的结果是false.
‫所以你们可以看到, 在每一个例子中, 我已经看过了所有的例子, 最后都得到了正确的答案
‫所以我们知道这是正确的答案｡
‫这就是布尔型的好处通常你可以评估所有的情况, 因为你可以说, 好吧, 好吧,
‫有什么情况？
‫这将是真实的和真实的｡
‫这将是真的和假的｡
‫这将是假的和真的｡
‫这将是虚假的和虚假的｡
‫你可以评估所有这些案例｡
‫如果所有这些情况都是正确的, 那么你就知道你得到了一个正确的布尔语句｡
‫好的, 谢谢
‫这就是我们计算B是赢家的方法｡
‫最后, 我们只需要调用我们的结束游戏模式｡
‫现在我们直接调用了play控制器博弈已经结束了我现在要做的是调用end game我们要传递false因为这是一个博弈者输了的情况这也是我们想要达到的结果.
‫还有一点要注意的是我们传递的这个空指针会给我们带来问题,
‫因为如果玩家真的赢了, 它会试图把焦点从我们的棋子上移开.
‫我们在这里要传递的只是焦点应该放在控制器上, 点得到兵｡
‫这基本上就是说, 你应该把你自己的球员控制器的重点, 是基本上你的相机应该指向哪里？
‫它应该仍然指向你的兵｡
‫为什么我们这样做是重要的, 为什么在这里有这个选择摆在首位？
‫在很多游戏中, 你经常会遇到, 或者很多比赛型的游戏, 你可能会遇到,
‫如果游戏结束了, 你想去跟随棋子｡
‫这是赢家｡
‫所以想象一下像一个Fortnite的场景, 你经常去跟踪杀你的人｡
‫这是实现此目的的机制｡
‫你基本上是把杀人者的棋子交给了他｡
‫我们的游戏里可不是这么玩的｡
‫我们将继续关注苹果, 看看我们是赢还是死｡
‫这节课就讲到这里｡
‫让我们编译一下, 看看它是否工作｡
‫让我们跳到虚幻中去, 然后点击播放｡
‫我们去送死吧｡
‫你去那里｡
‫一切都和以前一样
‫我们仍然会调用播放器控制器, 然后重新启动｡
‫好东西｡
‫在这堂课中, 我们回顾一下, 我们看到了什么？
‫我们已经看到了如何在这一层的参与者之间进行迭代, 以便在每个参与者上调用一个函数｡
‫下节课我们将再次使用T系数范围, 这次是计算玩家是否获胜｡
‫到时候见｡