找回密码
 立即注册
查看: 550|回复: 0

Unity面试题精选(4)

[复制链接]
发表于 2021-1-5 09:25 | 显示全部楼层 |阅读模式
洪流学堂,让你快人几步。
本篇文章首发于我的公众号:洪流学堂
今天整理了一些Unity面试题目,希望可以帮助到你。
面试官:叉乘和点乘的意义?

叉乘:
几何意义:得到一个与这两个向量都垂直的向量,这个向量的模是以两个向量为边的平行四边形的面积。
在同一平面内,结果>0表示B在A的逆时针方向,结果<0表示B在A的顺时针方向, 结果=0表示B与A同向。
点乘:
几何意义:可以用来表征或计算两个向量之间的夹角,以及b向量在a向量方向上的投影。
两个向量的点乘所得到的是两个向量的余弦值,也就是-1到1之间,0表示垂直,-1表示相反,1表示相同方向。
面试官:虚方法和抽象方法的区别?

    抽象方法是只有方法名称,没有方法体,即没有方法的具体实现,子类必须重写父类抽象方法才能实现具体功能;虚函数有方法名称也也有方法体,但是子类可覆盖,也可不覆盖。抽象方法是一种强制派生类覆盖的方法,否则派生类将不能被实例化。抽象方法只能在抽象类中声明,虚方法不是。派生类必须重写抽象类中的抽象方法,虚方法则不必要。
面试官:Addcomponent后哪个生命周期函数会被调用?

对于AddComponent添加的脚本,其Awake,Start,OnEnable是在Add的当前帧被调用的,其中Awake,OnEnable与AddComponent处于同一调用链上,Start会在当前帧稍晚一些的时候被调用,Update则是根据Add调用时机决定何时调用:如果Add是在当前帧的Update前调用,那么新脚本的Update也会在当前帧被调用,否则会被延迟到下一帧调用。
面试官:Unity中协程是如何实现的?

协程不是线程,也不是异步执行的。协程和MonoBehaviour的Update函数一样也是在MainThread中执行的。使用协程你不用考虑同步和锁的问题。
协程其实就是一个IEnumerator(迭代器),IEnumerator 接口有两个方法Current和MoveNext() ,只有当MoveNext()返回 true时才可以访问Current,否则会报错。迭代器方法运行到yield return语句时,会返回一个expression表达式并保留当前在代码中的位置,当下次调用迭代器函数时执行从该位置重新启动。
面试官:图集打包怎么分类?

    按业务功能的预制,寻找依赖,收集所有预制引用的图片。如果有多个预制使用了同一张图片,我们就把它扔到common文件夹。让图集尽量紧凑,没有太多空白,尽量让图集处于2的n次方大小。
扩展阅读

    Unity面试题精选(1)Unity面试题精选(2)Unity面试题精选(3)

我是大智,你的技术探路者,下次见!
别走!点赞收藏哦!
好,你可以走了。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-15 23:35 , Processed in 0.092478 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表