Unity
1.树形数据结构在游戏开发中有哪些应用,使用树的优点是什么,讲解一下行为树的实现逻辑。
应用:行为树,红点系统。 优点:
模块化:可以任意添加和删除某个树中的结点,易于扩展
逻辑可见性:高效可读,方便扩展为可视化的流程。 行为树实现逻辑: 首先,行为树含有四种结点,分别是:
Composite,Decorator,Action,Conditional,也就是组合,修饰,行为与条件节点。通常组合节点又分为序列,选择。其分别代表and和or逻辑。组合节点和修饰节点只能作为叶节点,而行为节点和条件节点只能作为子节点。首先行为树必须要有一个依赖对象,开始执行后,从根节点开始递归执行。每个结点又根据执行的状态:成功,失败和运行中分别向父节点反馈,这样我们就能得到整个行为树的执行状态。例如:如果要实现 NPC 先走到 A 地,就可以使用选择结点组合一个条件节点和行为节点,其中条件节点是判断 NPC 是否已经位于 A 地,行为节点是使 NPC 向 A 地移动,当 NPC 已位于 A 地那么条件节点返回成功,选择结点也直接结束了,如果没有位于 A 地选择结点就接着执行移动的功能。
2.cpu密集型的游戏如何提高gpu利用率,为什么要这么做
3.线程和协程是什么,有什么区别
4.当游戏需要大量生成一堆预制体的时候,如何去优化这个卡顿的过程。
假设当前场景,玩家打开背包,其中有很多不同种类的物品,成百上千,如何使得加载出来不会卡顿:
使用对象池,提前在游戏刚开始加载的时候分配好,做一个缓存操作,每次对背包数据结构操作时也对缓存进行更新。
分帧操作,将这个生成预制体(UI)的操作使用协程均摊到很多帧。
5.List 和 ArrayList 区别
test
6.讲一下 unity 的 Resources 文件夹打包策略
Last updated