随笔分类 - unity / 勇士传说
摘要:使用 ScriptableObject 实现血量更新 创建 ScriptableObject 内容如下 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.E
阅读全文
摘要:Colourful Hierarchy Category GameObject 插件 用于美化 Hierachy 窗口 通过查看 Color Palette 可以知道用法 UI InputSystem 冲突 我们的项目使用了最新的 Input System,所以需要按上图所示进行操作,以便 UI 也
阅读全文
摘要:动画 动画状态机改成这样 当 run = true 的时候,从 beeFly 立马切换到 beeChase 当 run = false 的时候,从 beeChase 立马切换到 beeFly 当 hurt 触发的时候,从 Any State 立马切换到 beeHurt,当 beeHurt 完整播放一
阅读全文
摘要:动画 切割图片,制作动画,注意:锚点在中心点 注意:beeFly 和 beeChase 使用相同的动画,但是速度不一样 代码 Enemy 因为 蜜蜂 的行动方式与 野猪、蜗牛 都不一样,它是在空中飞的,所以它检测玩家和移动的方式都是不一样的,所以我们需要对 Enemy 中 FoundPlayer、O
阅读全文
摘要:动画 增加一个叫 skill 的 Trigger,以及一个叫 hide 的 bool 变量 当 skill 触发,并且 hide = true 的时候,立马进入 snailHide 状态 snailHide 完整播放完一帧,并且 hide = true 的时候,进入 snailHideIdle 状态
阅读全文
摘要:动画相关 切割图片 将蜗牛的图片切割成动画 动画状态机 这里将蜗牛的移动分为 PreMove 和 Move 两个状态,希望在 PreMove 也就是蜗牛头还没有伸出去的时候不移动,等蜗牛头伸出去之后才移动 当 walk 为 true 的时候,从 snailIdle 立马进入 snailPreMove
阅读全文
摘要:添加野猪追逐状态 using System.Collections; using System.Collections.Generic; using UnityEngine; public class BoarChaseState : BaseState { public override void
阅读全文
摘要:创建有限状态机基类 实现有限状态机 野猪巡逻状态 继承 BaseState,将原来 Enemy 的 Update 里面的一部分移动到 LogicUpdate 里面 使用有限状态机 定义状态 定义巡逻状态、追逐状态、当前状态 Enable 进入巡逻状态 Disable 退出当前状态 Update 调用
阅读全文
摘要:制作受伤和死亡动画 受伤动画 死亡动画就是在受伤动画基础上,增加 Color.a 从 1 ~ 0 的变化 动画状态机如下 当 hurt 触发的时候,从 Any State 立刻进入 boarHurt,当 boarHurt 播放完一帧之后进入 Exit 当 dead = true 的时候,从 Any
阅读全文
摘要:检测左边和右边是否有地面 老师的代码写的是有问题的,见我扩展的代码 using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; using UnityEngine; public c
阅读全文
摘要:野猪实现移动 添加一个 Enemy 类 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Enemy : MonoBehaviour { protected Rigi
阅读全文
摘要:为三段攻击分别添加对应的触发器 用同样的方式给 Attack2 和 Attack3 动画也添加触发器 设置完触发器攻击野猪不掉血 因为野猪身上有两个碰撞体,我们希望 capsule collider 2D 起作用,所以需要将 Capsule Collider 2D 的 Layer Override
阅读全文
摘要:创建动画片段 修改动画状态机 增加 Attack Layer,把刚才制作好的动画片段加进去 再增加两个变量,bool 类型的 isAttack 和 trigger 类型的 attack New State -> blueAttack1,isAttack = true 并且 attack 触发 blu
阅读全文
摘要:添加受伤和死亡动画片段 通过新的层来实现受伤和死亡动画 点击动画控制器右上角的 +,然后新建一个 Layer 注意 Weight 要改成 1,Blending 要改成 Additive 受伤的话,我们通过 hurt 来触发,死亡我们通过 isDead 来控制 在 Hurt Layer 中,当 hur
阅读全文
摘要:场景中添加一只野猪 将素材中的野猪图片进行切割,然后给野猪绑定刚体和碰撞体 注意需要两个碰撞体 第一个碰撞体在脚底,避免野猪掉下去,为了避免这个碰撞体和其它敌人以及玩家产生碰撞,需要排除 Player 和 Enemy 层,这样这个碰撞体就只会和平台产生碰撞,避免野猪掉下去 第二个碰撞体表示野猪的攻击
阅读全文
摘要:动画片段 做成动画片段,命名为 blueCrouchStart 和 blueCrouchIdle 动画状态机 这里我们再接触一个新的东西,Sub-State Machine,可以通过右键 Create Sub-State Machine 来实现 点开 Crouch ,把之前创建好的 blueCrou
阅读全文
摘要:人物跳跃的五个阶段 根据这张图把图片切好,并做好动画状态 使用 BlendTree 实现跳跃动画 在动画状态机中新建一个 BlendTree,然后给它添加三个 Motion 因为我设置的 JumpForce 是 5,所以人物速度54时候是起跳阶段,41的时候是上升阶段,1~-1的时候是空中换腿阶段,
阅读全文
摘要:目标 按住键盘上的 左shift 键,或者手柄上的 左肩键 后,人物行动速度变为原来的 1/5,这样就能够强制走路了 配置 inputControl 实现相关代码 private void Awake() { // 获取 Player 上面的刚体组件 rb = GetComponent<Rigidb
阅读全文
摘要:给帧图片命名 添加动画 首先需要给 Player 添加 Animator 组件 然后创建 Animations/Player 文件夹,并在该文件夹下面添加 Animator Controller,起名叫 Player 然后把 Player 拖到 Animator 的 Controller 上面 打开
阅读全文
摘要:物理环境监测代码 using System.Collections; using System.Collections.Generic; using UnityEngine; public class PhysicsCheck : MonoBehaviour { [Header("监测参数")] p
阅读全文