AI行为数
发表于|更新于|Unity/游戏客户端
|浏览量:
文章作者: 岁迹
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 岁迹!
相关推荐

2026-06-27
背包系统

2026-06-27
状态机
状态机关于有限状态机,就是某一时刻只存在一种状态;满足条件时,切换其他状态,当前状态退出,进入新状态。一般用于游戏AI的处理,比如敌人NPC默认时巡逻状态,当发现玩家转变为追击状态,丢失玩家转变为巡逻状态,中间夹杂Idle状态。也可能会切换到攻击状态。 几个关键词: State(状态):如 Idle、Run、Jump、Attack… Transition(过渡):从一个状态切到另一个状态的“箭头” Condition(条件):什么时候走这条箭头,比如速度>0、被击中、按下空格… Parameter(参数):可以被脚本修改的值,用来驱动条件,比如 speed、isGround、HP… 对于一般的项目来说可以直接使用简单的条件判断来进行状态的切换。但是对于大型项目来说,使用接口或者类继承可以实现。 如下结构 12345678910111213141516171819202122232425262728293031323334 ┌─────────────────────────┐ │ Stat...

2026-06-27
框架模块
单例模式单例模式(Singleton Pattern)是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点。这种模式常用于需要全局访问点的对象,如配置管理器、游戏管理器等。 唯一性:确保一个类只有一个实例存在 全局访问:提供全局访问点 延迟初始化:通常采用懒加载方式创建实例 unity中的泛型单例,并且继承了MonoBehaviour,确保能够挂载到场景中的物体上,同时能够使用自带的生命周期函数,以及类型OntriggerEnter之类的物理事件 123456789101112131415161718192021222324252627282930313233343536373839public class Singleton<T> : MonoBehaviour where T : Singleton<T>{ private static T instance; public static T Instance { get { r...

2026-06-27
面向对象编程(中级)
7 面向对象编程(中级) IDE:集成开发环境 IDEA Eeclipse:一个开源的、基于 Java 的可扩展开发平台。是由 IBM 公司开发,在 2001 年 11 月贡献给开源社区的,目前最优秀的 Java 开发 IDE 之一。 7.1 IDEA 的使用 IDEA:全程 IntelliJ IDEA。在业界被公认为最好的 Java 开发工具。是捷克 JetBrains 公司的产品。除了 Java 开发,还支持 HTML,CSS,PHP,MySQL,Python 等。下载地址 7.1.1 常用快捷键 删除当前行:ctrl + Y 复制当前行:ctrl + D 补全代码:alt + / 添加 / 取消注释:ctrl + / 导入该行需要的类:alt + enter 快速格式化代码:ctrl + alt + L 快速运行程序:shift + F10(我改成了alt + R) 生成构造器:alt + insert 查看一个类的层级关系:ctrl + H 定位一个方法:把光标放在一个方法上,按 ctrl + B 自动分配变量名:在后面加上 .var 查看模板快捷键:c...

2026-06-27
peropero面试
基础差(主要是拷打八股文)1.协程原理以及底层实现Unity协程核心本质都是迭代器 + 状态调度。 总结:Unity 协程的底层本质上就是“迭代器 + 状态机调度”机制。它依赖 C# 的 IEnumerator 接口和 yield return 语法实现,当我们通过 StartCoroutine() 开启一个协程时,Unity 并不会创建新线程,而是把这个协程注册到主线程的调度系统中执行。编译器会把带有 yield return 的协程函数自动转换成一个状态机类,这个类会保存协程执行时的上下文信息,比如当前执行到哪一步、局部变量的值以及当前等待条件等。当协程运行到 yield return 时,会先暂停当前执行,并把等待信息返回给 Unity;之后 Unity 在合适的时机继续调用这个迭代器的 MoveNext() 方法,使协程从上一次暂停的位置继续往下执行,直到函数执行结束或再次遇到新的 yield return。因此,协程本质上仍然是在主线程中分段执行的函数,它能够把逻辑拆分到多个帧里完成,但不能真正解决耗时计算造成的主线程阻塞问题。 2. 调度器的 “心跳” 作用协程不会自...

2026-06-27
热更新
AssetBundle和Resources资源加载的区别 对比维度 Resources AssetBundle (AB 包) 资源打包方式 自动打包,放在Assets/Resources目录下即被包含 手动打包,需通过脚本或编辑器指定资源打包 是否包含在主包 是,所有资源打包进游戏安装包 否,独立于主安装包,需单独分发 动态更新支持 不支持,修改需重新发布整个安装包 支持,可通过网络更新单个 AB 包 加载方式 Resources.Load(资源名称),无需路径细节 先加载 AB 包,再通过bundle.LoadAsset(资源名) 卸载控制 只能通过Resources.UnloadUnusedAssets()批量卸载 支持AssetBundle.Unload()单独卸载某个包 安装包体积影响 增大初始安装包体积 不影响主包体积,资源可按需下载 内存效率 整体优化,可能占用更多内存 按需加载,内存占用更可控 分平台支持 不支持分平台单独打包 支持为不同平台生成优化后的 AB 包 适用场景 小型项目、静态资源、原型开发 中大型项目、需更新资...
公告
记录游戏客户端开发、项目复盘和个人成长。