自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 Unity黑魂学习笔记P51 Blocking

在PlayerManager里面更新动画机的isBlocking变量。最后根据isBlocking变量判断是否回到Empty状态。首先在PlayerManager里新增一个isBlocking的变量,然后是处理输入。然后在PlayerAttacker里的逻辑为。这一P主要是实现玩家的举盾动画。

2025-04-06 16:46:29 62

原创 Unity黑魂学习笔记P50 AI Combos

主要是新增了这么个逻辑,isCombing这个变量根本就没进行设置,所以我的理解这里成功实现了连招,还是因为currentAttack = currentAttack.comboAction;首先在EnemyAttackAction中添加一个bool canDoCombo和一个EnemyAttackAction类型的comboAction表示此技能的下一个技能。也就是设置了当前的技能并接着返回了攻击状态,所以才可以进入连招。这一P视频思路感觉很乱。

2025-04-01 10:54:09 179

原创 Unity黑魂学习笔记P49 PARRY

招架在黑魂中是这样一种逻辑,如果是双持状态输入那么会释放右手武器战技,如果是左手也持有武器那么会触发左手武器轻攻击。如果左手武器是盾牌,那么会触发盾牌的战技(即招架)。首先是InputHandler接着是PlayerAttacker。

2025-04-01 10:32:04 139

原创 Unity黑魂学习笔记P48 RIPOSTE

这一P是反击的基础,实现和背刺的实现一样,都是给角色添加一个碰撞体(和背刺不一样的是这个碰撞体在角色的前面)用来进行射线检测,给一个反击是敌人需要站到的位置。然后播放对应的动画完成伤害计算即可。代码中可以看到逻辑和背刺的逻辑完全一样,就是播放的动画不同。

2025-03-25 20:52:34 211

原创 Unity黑魂学习笔记P47 Souls

首先在PlayerStats函数里新增一个方法。然后在Enemy死亡的动画上添加一个动画事件。这一P也很简单,就是杀死敌人获得魂。最后再新加一个UI显示控制的脚本。

2025-03-22 13:45:43 102

原创 Unity黑魂学习笔记P46 LOOTABLE CHESTS

这一P视频是完成宝箱的开启和物品的获得。主要的逻辑就是调整玩家的朝向,调整玩家的位置,播放玩家和箱子动画以及生成相应的PickUpItem。

2025-03-22 13:22:09 200

原创 Unity黑魂学习笔记P45 Stamina Dependant Actions

具体来说就是执行上述逻辑前先判断PlayerStats的currentStamina有没有小于等于0。这一P依然很简单,主要就是攻击、冲刺、翻滚等事件要依赖于体力槽,体力槽空了就不能执行这些行动。

2025-03-15 14:53:03 65

原创 Unity黑魂学习笔记P44 Rotate During Attack

现在我们通过动画机里的canRotate来决定玩家何时可以转向。这一P的内容也很简单,就是之前攻击的时候不能转向。

2025-03-15 14:33:55 134

原创 Unity黑魂学习笔记P43 Critical Damage Via Animation

伤害数值是存在DamageCollider中的,因此需要把伤害数值传给DamageCollider。上一P只完成了背刺的动画实现,没有完成实际的伤害计算。这一P是完成伤害计算。然后在PlayerAttacker中进行伤害数值的计算。首先在WeaponItem中添加基础伤害和暴击倍率。最后根据动画事件执行实际的伤害逻辑。

2025-03-15 14:11:22 162

原创 Unity黑魂学习笔记P42 Back Stab

然后Critical RayCast Start Point只有一个Transform,用来表示玩家进行背刺时使用射线检测的起始位置。需要一个BackStab Collider,有一个Box Collider和一个BackStabCollider的脚本。Back Stabber Standing Point该对象被背刺触发动画时,敌人所应该在的位置。首先需要设置一下碰撞器用来进行背刺的碰撞检测。主要就是调整位置调整朝向,播放动画造成伤害。感觉这个脚本有点没必要。

2025-03-15 13:23:27 178

原创 Unity黑魂学习笔记P41 Focus Point

CharacterStats里进行计算蓝量并更新面板。PlayerAttacker里面释放魔法的时候需要判断。然后在SpellItem里加上蓝量消耗的字段。这一P也很简单,和做血条,体力条一样。并且,成功释放魔法之后需要减少蓝量。首先搞一个面板,并写一个脚本。

2025-03-15 11:23:59 175

原创 Unity黑魂学习笔记P40 Heal Player Spell

然后在PlayerAttacker中调用,下面还提供一个SuccessfullyCastSpell,是为了在治疗魔法的动画播放完毕后执行动画事件完成实际的回血的效果。这一P也很简单,主要是播放治疗魔法的动画和VFX。

2025-03-15 10:51:49 99

原创 Unity黑魂学习笔记P39 Spell Casting Foundation

攻击的逻辑不再放在InputHandler里了,而是直接调用PlayerAttacker的HandleRBAction函数。HandleRBAction又会根据武器的类型去判断是近战还是魔法,分别执行不同的逻辑。有一些特效和动画,还有魔法的类型。

2025-03-02 15:22:09 205

原创 Unity黑魂学习笔记P38 Rolling Invulnerability & Stamina Regeneration

逻辑是如果体力槽不满,且等待一秒钟之后才开始逐渐恢复体力。该函数在PlayerManger的Update里调用。在PlayerStats里执行TakeDamge函数时,如果发现是无敌就直接return。主要思路就是给翻滚动画加动画事件,加入无敌和取消无敌的判定。

2025-03-02 15:00:06 138

原创 Unity黑魂学习笔记P37 Enemy DAMAGE & Player Death

CombatStance和Attack并没有旋转相关的代码,因此把PursueTarget中的HandleRotateTowardsTarget都copy过去,在Tick开始的时候调用即可。然后在PlayerStats里面和EnemyStats的TakeDamge函数进行判断。思想就是如果死亡了就不再执行该函数,血量为0时设置isDead为true。这部分比较简单,和我们之前的WeaponsSlotManager逻辑基本一样。但是这样做又发现了新的问题,就是敌人在攻击和攻击间隙有非常不自然的旋转动画。

2025-03-02 14:32:48 300

原创 Unity黑魂学习笔记P36 House Keeping (PT. 3)

实现思路就是在玩家的敌人的碰撞体外面再套一层碰撞体,并且设置彼此的rigidbody为kinematic的。此外,我们新增的碰撞体只想检测敌人和玩家之间的碰撞,因此我们新增一个Layer并设置碰撞检测的矩阵。新添加的Layer名字叫Character Collider Blocker。

2025-03-02 12:55:32 143

原创 Unity黑魂学习笔记P35 ENEMY AMBUSH & SLEEP STATE

主要思路就是敌人一直去做范围检测,检测到了玩家那么就从睡觉的动画起身,然后追逐玩家(替换掉了Idle状态)根据代码可以看出,和Idle状态基本一致,除了播放的动画略微不同。

2025-01-12 13:49:52 245

原创 Unity黑魂学习笔记P34A.I STATE MACHINE (PT. 2)

【代码】Unity黑魂学习笔记P34A.I STATE MACHINE (PT. 2)

2025-01-11 15:41:53 205

原创 Unity黑魂学习笔记P33 A.I STATE MACHINE

然后在EnemyManager的Update中调用。

2025-01-11 14:38:32 168

原创 Unity黑魂学习笔记P32 ENEMY A.I - ATTACKS

【代码】Unity黑魂学习笔记P32 ENEMY A.I - ATTACKS。

2025-01-11 14:07:03 144

原创 Unity黑魂学习笔记P31 ENEMY A.I - Movement & Pathfinding

针对敌人是否正在播放动画分别处理运动逻辑,如果正在播放动画(例如进行攻击动画时)就不移动,否则就执行移动。我们这里在在Enemy物体下新建一个empty object,给他添加上NavMeshaAgent组件。处理旋转的时候会使用navmeshagent的方向和速度,我们想要每一帧都更新,每一帧处理完都置0。

2025-01-11 13:33:59 163

原创 Unity黑魂学习笔记P30 ENEMY A.I - FOV Detection

用OverlapSphere射线进行检测,检测到的碰撞体的和当前位置的角度做一个判断(类似FOV,即一定的视线范围内才算看见,超出一定角度则认为看不到)实现细节:更新都放在了EnemyManager里,EnemyLocomotionManager负责实现检测的逻辑。

2025-01-04 19:33:28 139

原创 Unity黑魂学习笔记P29 TWO HANDED ATTACKS

在上一P加载武器模型的时候进行处理,如果是双持就把左手的武器给Destroy,然后放到backSlot上。如果不是双持就把backslot的物体给Destory掉。把我们之前的WeaponHolderSlots多加一个bool判断。和单手攻击一样,播放动画即可。然后放置好这个物体的位置。

2025-01-04 19:05:51 193

原创 Unity黑魂学习笔记P28 TWO HANDING WEAPON

输入的时候进行一下判断(还没有完全实现好,默认是只有右手才可以双持)通过代码可以看到,这一p就是根据输入,然后播放了双持的动画而已。

2025-01-04 18:27:58 134

原创 Unity黑魂学习笔记P27 Switch Weapons From Inventory

其实核心思路就两点,第一是根据显示手持武器的Slot这个UI来判断是手持武器列表里的哪一个。这一p主要做的是可以根据库存里的武器替换掉当前手上的武器。然后再选择库存里的武器进行替换,也要选择库存里的武器。

2025-01-04 18:04:47 167

原创 Unity黑魂学习笔记P26 Lock On(PT.3)

这里就是人物的旋转方向变了,不再是根据摄像机的方向来了,而是根据锁定的敌人。还有就是人物移动的时候给一个水平轴的量,用来播放strife动画。

2025-01-04 16:20:32 138

原创 Unity黑魂学习笔记P25 Lock On(PT.2)

实现思路就是寻找当前锁定的敌人左边和右边两个敌人。主要是实现类似黑魂切换锁定目标的功能。

2025-01-04 14:56:41 160

原创 Unity黑魂学习笔记P24 Lock On(PT.1)

默认nearestLockOnTarget就是我们的currentLockOnTarget。输入这里进行一些标志的更新。然后处理摄像机的旋转。

2025-01-01 15:07:50 213

原创 Unity黑魂学习笔记P22 Equipment Screen

针对每一个slot,都有这么一个脚本,并且可以区分是哪只手的哪个武器。这一P是可以把玩家右手和左手武器显示到UI上。然后由下面这个脚本统一管理加载和卸载。

2025-01-01 13:42:07 129

原创 Unity黑魂学习笔记P21 Inventory Slot UI

首先遍历weaponInventorySlots,如果当前的索引超出了库存的数量,那么就隐藏后续slot的显示,如果没超出但是slots数量不够了,就实例化slots最后把库存中的物品显示到slots上。然后在UIManger中根据玩家的库存数量进行扩展slot数量。实现思路就是新建一个slot的脚本。

2025-01-01 12:59:05 235

原创 Unity黑魂学习笔记P20 Inventory Screen

【代码】Unity黑魂学习笔记P20 Inventory Screen。

2024-12-28 16:11:14 164

原创 Unity黑魂学习笔记P19 Jumping

【代码】Unity黑魂学习笔记P19 Jumping。

2024-12-28 15:14:48 198

原创 Unity黑魂学习笔记P18 Pop Ups/Interactable Objects

主要是两部分,第一部分是射线检测,检测到物体显示一个UI,这里显示的文字内容为在WeaponPickup脚本里设置的内容。然后按键进行拾取后切换UI显示,显示武器的名称以及武器的图片显示。

2024-12-28 14:50:49 174

原创 Unity黑魂学习笔记P17 Pick Up Item

实现PickUp的功能,具体逻辑就是把自己持有的weaponitem放到库存当中去,并且播放相应的动画后删除自身。创建一个Interactable的脚本基类,包括一个要显示的string(后续UI展示用)和一个虚函数。之后在PlayerManager中实现一个射线检测的脚本,以此来检测是否有可交互的物体。我们这里只实现一个武器pickup的功能。

2024-12-28 14:13:36 118

原创 Unity黑魂学习笔记P16 Weapon Stamina Drain

我们的PlayerStats记录了玩家的各个数据,包括血量以及体力等。WeaponSlotManager是管理Item的脚本。在WeaponSlotManager中进行实际的逻辑执行。PlayerAttacker是实现玩家攻击的脚本。在WeaponItem里新增体力衰减的数据。在PlayerStats中完成数值计算。在StaminaBar中完成UI的更新。

2024-12-28 13:34:35 184

原创 Unity黑魂学习笔记P15 Weapon Equipment Slots

然后在WeaponSlotManager里面调用即可。新建一个QuickSlotsUI的脚本。

2024-12-21 19:04:17 232

原创 Unity黑魂学习笔记P14 Quick Slots

这里默认是两个,所以先写成HardCode后面再改。最后再处理一下输入,输入指定按键就更换武器。接下来实现ChangeWeapon函数。手里的武器可进行更换。

2024-12-21 18:27:11 619

原创 Unity黑魂学习笔记P13 Weapon IDLE Animations

在根据SlotManager加载实际的武器的时候,读取武器Item上的待机动画的名称,播放相应的动画即可。新建两个动画层,使用Override混合,并且都加上相应的AvatarMask。

2024-12-21 15:05:59 162

原创 Unity黑魂学习笔记P12 weapon combos

通过动画事件来设置一个flag,以此来判断是否可以进行连招。然后在PlayerManager的Update中不断获取这个值。更好的方式不是一直用字符串,而是给一个List,后续我会进行改进的。在PlayerAttacker里面进行实际的连招释放。在InputHandler中进行判断是否能使用连招。在AnimatorHandler中设置。

2024-12-21 14:21:16 150

原创 Unity黑魂学习笔记P11 dealing damage

在武器的预制体下加一个box collider,然后创建一个DamageCollider来处理实际的碰撞体行为。这里负责具体的实际的逻辑执行。在WeaponSlotManager里面负责调用DamageCollider相应的逻辑,做统一管理,也方便动画事件进行使用。

2024-12-21 13:41:36 112

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除