日志2025.2.9

日志2025.2.9

1.增加了敌人挥砍类型

2.增加了敌人的死亡状态

在敌人身上添加Ragdoll,死后激活布偶模式

public class EnemyRagdoll : MonoBehaviour

{

private Rigidbody[] rigidbodies;

private Collider[] colliders;

private void Awake()

{

rigidbodies = GetComponentsInChildren<Rigidbody>();

colliders = GetComponentsInChildren<Collider>();

SetRagdollActive(false);

}

//如果是布偶状态,则设置钢铁不为运动学。若为正常状态,将刚体设为运动学

public void SetRagdollActive(bool active)

{

foreach (Rigidbody rb in rigidbodies)

{

rb.isKinematic = !active;

}

}

//设置碰撞体是否为激活状态

public void SetColliderActive(bool active)

{

foreach(Collider collider in colliders)

{

collider.enabled = active;

}

}

}

public class DeadState_Melee : EnemyState

{

private Enemy_Melee enemy;

private EnemyRagdoll ragdoll;

private bool hasDisapear;

public DeadState_Melee(Enemy enemyBase, EnemyStateMachine stateMachine, string animBoolName) : base(enemyBase, stateMachine, animBoolName)

{

enemy = (Enemy_Melee)enemyBase;

}

public override void Enter()

{

base.Enter();

enemy.agent.isStopped = true;

enemy.animator.enabled = false;

ragdoll = enemy.GetComponent<EnemyRagdoll>();

if (ragdoll != null)

{

ragdoll.SetRagdollActive(true);

}

stateTimer = 5f;

}

public override void Exit()

{

base.Exit();

}

public override void Update()

{

base.Update();

if(stateTimer < 0 && !hasDisapear)

{

hasDisapear = true;

ragdoll?.SetColliderActive(false);

}

}

}

3.增加了简单的血量系统

public override void GetHit()

{

base.GetHit();

if(healthPoint <= 0)

stateMachine.ChangeState(deadState);

}

4.增加了带盾牌的特殊敌人

public class EnemyShield : MonoBehaviour

{

SerializeField\] private int durability; private Enemy enemy; private void Awake() { enemy = GetComponentInParent\(); } public void ReduceDurability() { durability--; if(durability \<= 0) { enemy.animator.SetFloat("ChaseIndex", 0); Destroy(gameObject); } } } //初始化一些特殊的敌人功能 private void InitializeSpeciality() { if(meleeType == EnemyType_Melee.Shield) { animator.SetFloat("ChaseIndex", 1); shieldTransform.gameObject.SetActive(true); } }

相关推荐
珹洺1 小时前
C++从入门到实战(十)类和对象(最终部分)static成员,内部类,匿名对象与对象拷贝时的编译器优化详解
java·数据结构·c++·redis·后端·算法·链表
写bug的小屁孩1 小时前
移动零+复写零+快乐数+盛最多水的容器+有效三角形的个数
c++·算法·双指针
飞川撸码1 小时前
【LeetCode 热题100】208:实现 Trie (前缀树)(详细解析)(Go语言版)
算法·leetcode·golang·图搜索算法
这就是编程2 小时前
自回归模型的新浪潮?GPT-4o图像生成技术解析与未来展望
人工智能·算法·机器学习·数据挖掘·回归
羑悻的小杀马特2 小时前
【狂热算法篇】探寻图论幽径:Bellman - Ford 算法的浪漫征程(通俗易懂版)
c++·算法·图论·bellman_ford算法
枫景Maple5 小时前
简单了解一下Unity的MaterialPropertyBlock
unity·游戏引擎
Fantasydg6 小时前
DAY 31 leetcode 142--链表.环形链表
算法·leetcode·链表
basketball6166 小时前
C++ STL常用算法之常用排序算法
c++·算法·排序算法
qystca6 小时前
蓝桥云客 岛屿个数
算法·dfs·bfs
什码情况7 小时前
回文时间 - 携程机试真题题解
数据结构·python·算法·华为od·机试