日志2025.2.9

ops/2025/2/12 8:53:01/

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


http://www.ppmy.cn/ops/157313.html

相关文章

机器学习数学基础:15.分块矩阵

分块矩阵的概念 把矩阵 A A A用若干条纵线和横线分成许多小矩阵&#xff0c;每个小矩阵称为 A A A的子块&#xff0c;形式上以子块为元素的矩阵称为分块矩阵。例如&#xff1a; A ( a 1 0 0 0 a 0 0 1 0 b 1 0 1 1 b ) A\ \begin{pmatrix}a&1&0&0\\0&a&…

GaussDB用户权限管理

GaussDB用户权限管理 系统权限系统权限查看系统权限授予 角色权限角色权限查看角色权限授予 对象权限对象权限查看对象权限授予 GaussDB数据库中的权限管理可以分为三个级别&#xff1a; 系统权限&#xff1a;包括SYSADMIN、CREATEDB、CREATEROLE、AUDITADMIN和LOGIN等权限。角…

《语义捕捉全解析:从“我爱自然语言处理”到嵌入向量的全过程》

首先讲在前面&#xff0c;介绍一些背景 RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09; 是一种结合了信息检索与语言生成模型的技术&#xff0c;通过从外部知识库中检索相关信息&#xff0c;并将其作为提示输入给大型语言模型&#xff…

13.1 深入理解 LangChain Chat Model 与 Prompt Template:重构智能翻译助手的核心

深入理解 LangChain Chat Model 与 Prompt Template:重构智能翻译助手的核心 关键词:LangChain Chat Model, Chat Prompt Template, 翻译系统架构设计, 大模型抽象层, 提示工程优化 1. 为什么需要 Chat Model 抽象层? 在传统翻译系统开发中,对接不同大模型面临三大痛点:…

Python的秘密基地--[章节13] Python 数据分析与可视化

第13章&#xff1a;Python 数据分析与可视化 在大数据时代&#xff0c;数据分析与可视化是至关重要的技能。Python 提供了多个强大的库&#xff0c;如 NumPy、Pandas、Matplotlib 和 Seaborn&#xff0c;用于数据处理、分析和可视化。本章将介绍如何使用 Python 进行数据分析&…

12.10 LLM 操作能力的边界突破(WebGPT vs SayCan)

LLM 操作能力的边界突破(WebGPT vs SayCan) 关键词:WebGPT, SayCan, LLM 操作能力, LangChain Agents, 工具调用, 机器人任务规划 1. 从“思考”到“行动”:LLM 操作能力的革命 传统语言模型仅擅长文本生成,但 WebGPT 和 SayCan 的出现标志着 LLM 开始具备真实世界操作能…

企业如何评估云计算的投资回报率(ROI)?

企业如何评估云计算的投资回报率&#xff08;ROI&#xff09;&#xff1f; 你有没有想过&#xff0c;企业在云计算上的投资到底值不值&#xff1f;如果你问不同的公司负责人&#xff0c;答案往往是两种&#xff1a;一种是“绝对值&#xff01;”另一种则可能是“我们还在观察阶…

搭建集成开发环境PyCharm

1.下载安装Python&#xff08;建议下载并安装3.9.x&#xff09; https://www.python.org/downloads/windows/ 要注意勾选“Add Python 3.9 to PATH”复选框&#xff0c;表示将Python的路径增加到环境变量中 2.安装集成开发环境Pycharm http://www.jetbrains.com/pycharm/…