news 2026/1/1 13:54:58

Netcode for GameObjects Boss Room 多人RPG战斗(14)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Netcode for GameObjects Boss Room 多人RPG战斗(14)

com.unity.multiplayer.samples.coop-2.5.0\Assets\Scripts\Gameplay\GameplayObjects\Character\AI

1. 系统概述

AI系统是一个基于状态机的智能体控制系统,主要用于处理游戏中NPC角色的行为逻辑,包括空闲状态、攻击状态等。系统采用了组件化架构,与服务器端角色逻辑紧密集成,实现了高效的AI行为管理。

2. 核心组件与架构

2.1 状态机基础架构

AIState.cs- AI状态基类,定义了所有AI状态必须实现的接口:

  • IsEligible()- 检查状态是否适用
  • Initialize()- 状态初始化
  • Update()- 状态更新逻辑

2.2 AI核心控制器

AIBrain.cs- AI核心逻辑处理类:

  • 管理AI状态切换(Idle/Attack)
  • 实现仇恨系统(Hate方法及GetHatedEnemies列表)
  • 提供AI状态选择机制(FindBestEligibleAIState)
  • 管理与服务器角色和动作系统的交互

2.3 具体状态实现

IdleAIState.cs - 空闲状态
  • 功能:当AI没有仇恨目标时处于此状态
  • 核心逻辑
    • DetectFoes()- 定期扫描周围玩家,检测范围内的敌人
    • 使用平方距离计算优化性能(避免昂贵的sqrt操作)
    • 通过PlayerServerCharacter.GetPlayerServerCharacters()获取所有活跃玩家
    • 当检测到敌人时,调用AIBrain.Hate()添加仇恨目标
AttackAIState.cs - 攻击状态
  • 功能:当AI有仇恨目标时处于此状态
  • 核心逻辑
    • 选择合适的攻击目标(ChooseFoe())
    • 选择可用的攻击动作(ChooseAttack())
    • 执行攻击动作序列
    • 处理追逐行为和攻击队列
    • 处理眩晕状态等特殊情况

2.4 玩家角色管理

PlayerServerCharacter.cs

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/31 7:25:59

Netcode for GameObjects Boss Room 多人RPG战斗(19)

ActionPlayers ActionPlayers是Boss Room项目中负责管理和执行动作(Action)的核心组件,分为客户端和服务器端两个版本,分别处理动作的视觉表现和逻辑执行。 1. 系统架构 1.1 核心组件 组件 职责 位置 ClientActionPlayer 客户端动作可视化与生命周期管理 Assets/Scripts/G…

作者头像 李华
网站建设 2025/12/28 2:45:16

深度学习优化器算法巧思速览

1. 为什么要研究优化器算法?它的关联问题:训练为什么要调参,调的是什么参?如果就这个问题去问各种大语言模型,它们能给出一堆的理由。但就博主而言,答案只有一个:干掉调参,解放生产力…

作者头像 李华
网站建设 2025/12/30 18:15:07

macOS上优雅运行Docker容器

什么是colimacolima主页Colima(Container on Lima)是一个轻量级的容器运行时管理工具,专为macOS(同时也支持Linux)设计,提供了一种简单优雅的方式来运行容器。它基于Lima项目,后者为macOS提供了…

作者头像 李华
网站建设 2025/12/26 2:10:20

XXL-JOB分布式任务调度

1.什么是任务调度 简单说:按照指定的规则(时间、频率、条件)自动执行某个任务,不需要人工手动触发。比如: 每天凌晨 2 点执行数据备份;每 5 分钟检查一次接口可用性;订单支付超时(30…

作者头像 李华
网站建设 2025/12/31 2:53:26

MYSQL与B+树与索引相关面试题

第一题(基础):请简述 MySQL 中索引底层为什么选择 B 树,而不是 B 树、红黑树等其他数据结构?第二题(基础进阶):MySQL 中聚簇索引和非聚簇索引的区别是什么?它们的叶子节…

作者头像 李华
网站建设 2025/12/30 22:46:49

PostgreSQL pgvector扩展Windows环境完整安装指南

PostgreSQL pgvector扩展Windows环境完整安装指南 【免费下载链接】pgvector Open-source vector similarity search for Postgres 项目地址: https://gitcode.com/GitHub_Trending/pg/pgvector 在人工智能应用日益普及的今天,向量相似性搜索已成为现代数据库…

作者头像 李华