欢迎来到光光的奇妙冒险,我是你们的煎饼光子老师。
今天是我们的第九期笔试面试题总结。
Lua部分:
1、请说出Lua中常用的数据类型(至少说出6种)
答案:
nil
boolean
number
string
table
function
userdata
thread
2、Lua中pairs和ipairs的区别
答案:
pairs可以遍历出表中的所有键值对信息,在遍历不规则表时,建议用它
ipairs只能遍历出连续信息,对于不规则结构,可能会缺失
3、Lua中常用的元方法有哪些?至少说出3个原方法
答案:
__index
__newindex
__tostring
__call
__add 运算符+
__sub 运算符-
__mul 运算符*
__div 运算符/
__mod 运算符%
__unm 运算符-
__concat 运算符..
__eq 运算符==
__lt 运算符<
__le 运算符<=
等
4、Lua中元表的作用
答案:
为一个表设置元表后,允许该表的行为关联元方法
5、Lua中__index和__newindex有什么作用
答案:
__index用于查找:如果访问不存在的数据,由__index提供最终结果
__newindex用于更新:如果对不存在的数据赋值,由__newindex对数据进行赋值
Unity部分:
1、Unity中判断两个2D矩形是否相交,有几种方式?(请至少说出两种方式)
答案:
1.使用Unity物理系统进行碰撞检测
2.使用Unity中范围检测相关API
3.自己写算法进行检测
2、Unity中想要制作角色的连招功能,在制作状态机时我们一般如何处理?
答案:
1.状态机条件可以添加一个Trigger类型和Int类型
Trigger条件主要用于触发动作,Int条件主要用于连招计数判断
2.逻辑上,当攻击按键输入时,我们需要触发动作,并且进行攻击计数
每次按键时都应该重新进 行攻击计数延迟清零
3、Unity中如果想要在动作的某一时刻进行伤害检测,我们应该怎么做?(请说出两种做法)
答案:
1.添加动画事件
2.在切换动画一开始,进行延迟触发,延迟时间为想要触发伤害的时间(延迟可以用延迟函数,也可以用协同程序)
4、Unity中想要制作自动寻路逻辑,我们应该怎么做?(请至少说出两种做法)
答案:
1.Unity自带的网格寻路系统
2.自定义寻路算法(比如 A星寻路算法)
5、游戏编辑器(比如 角色编辑器、关卡编辑器、地图编辑器等工具)的本质是什么?
答案:
数据的图形化编辑工具