‫在这段视频里｡
‫我们将处理角色的动画｡
‫所以让我们来创造一个角色｡
‫现在我们转到“资源”, 创建一个新文件夹, 并将其命名为“角色”｡
‫在该文件夹中, 我想将我的角色拖到其中,
‫因为在这里, 我们将是角色和角色动画, 因为这个角色预制件与我们从资源存储中获得的预制件不同, 因为我们已经更改了一些内容｡
‫例如, 我们删除了控制器, 动画控制器, 我们创建了一个新的脚本等等｡
‫现在, 让我们进入character文件夹并创建一个新的动画控制器, 因为无论何时要设置对象的动画,
‫都需要有一个动画控制器｡
‫我把它叫做char anim控制器｡
‫所以char加下划线, anim加下划线控制器｡
‫你可以选择一个你喜欢的名字, 但是char anim控制器对它的作用非常精确｡
‫现在让我们打开它, 我希望动画师控件是全屏的｡
‫所以我将把游戏拖到那里, 然后进入动画制作｡
‫好吧, 我会的
‫我们已经有了几个州｡
‫我们有保姆国家｡
‫我们有一个入口和一个出口
‫这些是在创建动画控制器时自动创建的｡
‫所以我们现在需要的是一个新的国家｡
‫因此, 我们可以随时创建新状态, 方法是右键单击此字段, 然后创建状态｡
‫我们要创造一个空的状态｡
‫正如您所看到的, 已经为我们创建了一个从进入到新状态的转换｡
‫入口点是动画师醒来的时刻, 也就是说, 玩家醒来的时刻, 就是入口点.
‫然后它直接通过跃迁到任何状态｡
‫现在, 如果我们单击任何状态, 我们应该更改名称,
‫因为我们想要的动画或状态是运行的, 这意味着我们希望播放器有一个运行动画｡
‫美妙之处在于, 我们需要的运动, 所以实际的图形动画已经存在｡
‫这是一个叫做“奔跑”的动画片段｡
‫你完全可以走着跳下去｡
‫这些都是我们已经下载的资产中的内容｡
‫但我们要使用的是run｡
‫现在我们简单地开始这个动作, 现在我们打开, 运行, 这样我们就可以更好地了解它的作用｡
‫因此,
‫双击运行在这里的运动在右手边, 你会发现它在这里的普通人和动画为我们的超级赛亚人字符免费包, 免费样品｡
‫让我们来看看run｡
‫让我们编辑一下, 看看这里能看到什么｡
‫有几个信息, 对我们来说重要的是循环时间, 因为那是激活的｡
‫这意味着我们的播放器将不断地有一个动画, 将在这里重复这个片段多次, 长度为0｡
‫667, 即0｡ 667秒｡
‫因此, 在三分之二秒后, 该动画将完成,
‫并将在循环时间或循环时间激活时重复｡
‫我们先停用循环时间, 看看我们的博弈.
‫那我们开始吧｡
‫现在让我们用我们的角色来测试一下｡
‫让我们转到我们的角色, 并将我们创建的图表和控制器拖到动画制作器中｡
‫这就是我们在这里创建的控制器, 它将直接从入口进入运行｡
‫让我们看看它的样子｡
‫我们可以看到球员跑啊跑啊跑, 即使他福尔斯了, 他也不在乎｡
‫他总是会有这样的运行动画, 这是不完美的｡
‫我们稍后会改变这一点｡
‫所以他福尔斯, 我们当然要有一个不同的动画｡
‫让我们回到控制器, 实际上我想再看一次运行动画｡
‫这里是运行运动, 我想编辑它, 现在我将停用循环时间｡
‫让我们再次运行代码或再次运行我们的游戏｡
‫如您所见, 循环时间仍处于激活状态｡
‫因此, 我将应用循环时间来停用循环时间, 然后开始｡
‫你可以看到他跑了一次或者重复了一次, 然后他就不再跑了｡
‫这就是循环时间的作用｡
‫这真的很重要, 我们让它处于激活状态, 因为它所做的,
‫它会重复这个动画非常好, 我们的播放器将运行漂亮｡
‫所以现在又把它关掉了｡
‫我们再来一遍｡
‫顺便说一下, 我们把它应用到FB X上, 再运行一次｡
‫现在, 您将看到他将不断地执行此运行动画｡
‫现在, 让我们看看如果我们打开游戏, 同时我们在运行中会发生什么｡
‫顺便说一下, 如果你想移动它, 你可以按鼠标的中键｡
‫现在让我们来运行这个游戏看看会发生什么｡
‫如你所见, 运行状态底部的蓝色条是动画和/或运动的重复或当前位置｡
‫这就是三分之二秒的意思, 差不多就是一次跑步, 一次跑步的重复就是三分之二秒｡
‫好吧, 我会的
‫现在我们有了运行动画, 但这不是它｡
‫我们还需要另一个动画, 即下降动画｡
‫所以每当我们的球员倒下的时候, 我们想有下面的动画, 我们可以在这里创建一个新的状态, 创建空｡
‫这个状态将被称为｡
‫下落的动作是往下跳｡
‫于是我们就有了跳浮跳起来捡起来等情况｡
‫我们现在需要的是跳下去｡
‫那么它做什么, 它会跳下去, 实际上再一次跳下去｡
‫现在我们需要一个从运行到下降的过渡, 因为你可以把它看作是一个流｡
‫所以动画从入口处开始, 然后开始奔跑, 然后在某个点上它会开始坠落｡
‫所以当玩家倒下时, 我们要在动画中倒下来奔跑｡
‫所以我们需要一个过渡, 做一个过渡, 然后我们可以把它拖到下降, 现在我们可以直接把它连接起来｡
‫所以在这里你有一个从运行到下降的过渡｡
‫你可以直接看到它｡
‫我们现在需要知道这个转变什么时候应该被触发或者应该运行, 所以每当下降应该改变的时候,
‫我们需要添加一个条件, 为了添加一个条件, 我们可以在这里做｡
‫我们需要一个参数｡
‫如您所见, 我们还没有任何参数｡
‫我们需要为此创建一个新参数｡
‫所以在左手, 你可以看到这些层｡
‫然后是参数部分｡
‫因此, 单击此选项卡上的参数, 然后单击加号｡
‫现在, 您可以从四个不同的参数float､ int､ bool和trigger中进行选择｡
‫在我们的例子中, 我们要使用触发器, 因为我们需要的是,
‫当我们的球员在地面上不再有任何物理物体时, 在他下面的任何物理物体, 我们都要设置这个触发器,
‫我们可以很快地完成｡
‫让我们创建一个触发器, 我把它叫做falling.
‫现在, 我们点击这个小箭头上的过渡, 或者这个带箭头的小线条,
‫现在我们可以选择下降作为它的条件｡
‫如果你想看正在下落的动画, 我们就输入它｡
‫你可以在这里看到它, 或者实际上这是运行动画｡
‫让我们看一下下落的动画, 跳下的动画｡
‫您可以看到这是向下跳的动画｡
‫现在我们需要设定的是在某个地方设置这个触发器｡
‫最好的方法是我们的代码, 这意味着我们回到我们的脚本｡
‫让我们来看看我们的角色, 让我们来看看字符控制, 字符控制｡
‫在update方法中, 我们要检查是否还在落地｡
‫为此我们需要一个新的变量｡
‫其实两个新的变数｡
‫一是公开｡
‫因此, 让我们创建一个公共转换速率开始｡
‫因为我们要做的是, 从角色的底部开始运行数组, 看看我们是否击中了任何实体, 或者你是否还击中了什么｡
‫如果我们没有击中它, 那么我们就想触发它｡
‫当然, 我们需要一个动画师, 所以我将调用private animator, 在update方法中, 我需要一个红色的cast
‫hit｡
‫它的作用是从一个红色的强制转换中获取信息.
‫所以我们投下红色的投出来观察我们的球员的底部, 然后我们检查是否有什么东西？
‫我把它叫做hit, 现在我可以在这里做一个if请求, 或者我可以添加一个if条件,
‫如果物理点转换, 在这里我给予一个位置, 一个方向, 一个out, 不是这个｡
‫所以这里有几个重载, 很多｡
‫我们将使用其中一个｡
‫我现在要输入参数｡
‫一个是Ray Start, 它是我们在这里创建的变换变量, 即Ray start点的位置｡
‫这就是射线的起点, 射线应该从哪里开始, 然后到哪里去｡
‫我将用负变换向上, 这意味着它被向下变换了｡
‫所以下去吧｡
‫射线的方向, 然后我们检查一下, 这就是我们的命中｡
‫所以我们在这里创建的光线投射, 我们需要光线投射的长度, 我只需要使用数学公式f,
‫点无穷大｡
‫所以它应该一直下降, 一直下降, 只要它是假的.
‫也就是说我们没撞到什么东西｡
‫所以我在开头用了这个感叹号｡
‫所以我说不是物理学的射线､ 投射变换等｡ 这意味着如果没有击中底部, 那么请设置我的动画触发器｡
‫因此, 请继续, 并做动画点设置触发器和哪个触发器｡
‫我们刚刚创造的那个正在坠落｡
‫当然, 现在我们需要设置动画师, 因为目前我们还没有这样做｡
‫我们需要在awake方法中初始化它｡
‫所以enum就是get component, 而component叫做animator｡
‫在测试之前, 我们当然需要一个光线启动和重新启动是一个转换组件｡
‫现在让我们转到角色, 创建一个新的空对象, 我将其命名为Ray start.
‫而重新开始, 就像你在这里看到的, 在我们球员的脚下, 我希望它可能在我们球员的中间｡
‫所以只需要在某个地方加上肚子或者胸部｡
‫这就意味着它在我们的球员体内, 这是射线开始的地方, 它会向下,
‫现在它会检查他的底部是否有东西｡
‫有没有什么东西意味着有一个盒子, 我们碰撞或没有？
‫好吧, 我会的
‫现在我们有了它, 我们可以将Ray start分配给我们的图表控制器, 并将其拖动到那里｡
‫现在我们有了一个转换, 现在我们可以检查代码｡
‫让我们运行它, 看看我们的动画师是否改变了, 但我们可以看到它确实改变了｡
‫也许这不是完美的一个｡
‫让我们来看看动画师｡
‫跳下来的是我用过的那一种｡
‫所以我们来看看能不能找到更好的｡
‫让我们继续, 在这里尝试不同的动作｡
‫让我们试试跳花车｡
‫让我们看看它是什么样子的, 我们可以看到, 我认为这是更好的｡
‫这就是我们的下落动画｡
‫这就是每当玩家倒下并死亡时会出现的动画｡
‫好吧, 我会的
‫在下一个视频中, 我们将了解如何开始游戏, 因为现在只要我们按下运行按钮, 游戏就会开始｡
‫但我们需要做得更好｡
‫让我们保存该场景, 并在下一个视频中看到您｡