日志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<Enemy>();

}

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);

}

}

相关推荐
hetao173383729 分钟前
2026-10-07 hetao1733837 的刷题记录
c++·算法
Nil2081 小时前
leetcode 279完全平方数
算法·leetcode·职场和发展
All for pursuit.1 小时前
【动态规划-1】121.买卖股票的最佳时机
数据结构·c++·算法·leetcode·动态规划
名不经传的养虾人1 小时前
从0到1:企业级AI项目迭代日记 Vol.117|学会忘记,学会证明,学会设边界
大数据·人工智能·算法·企业ai·多agent协作
weixin_307779131 小时前
C++代码实现MATLAB中的cvpartition函数功能
开发语言·c++·算法·matlab
(Charon)1 小时前
【C++面试】线程同步机制:互斥锁、条件变量、原子操作与读写锁
开发语言·c++·算法·面试
七牛云行业应用2 小时前
刚刚!GPT-6.1 Sol Ultrafast 上线:速度、价格、API 接入全指南
算法
Omics Pro2 小时前
研究证实AI虚拟细胞可用于药物靶点发现
数据库·人工智能·算法·机器学习·自然语言处理
在所不辞兄2 小时前
常微分方程详解与应用
人工智能·神经网络·算法·机器学习
-dzk-2 小时前
【动态规划】LC 416.分割等和子集
算法·动态规划·代理模式