美文网首页Unity探路营
Unity面试题精选(4)

Unity面试题精选(4)

作者: 洪智 | 来源:发表于2020-12-29 14:10 被阅读0次

    洪流学堂,让你快人几步。
    本篇文章首发于我的公众号:洪流学堂

    今天整理了一些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面试题精选(4)

        本文链接:https://www.haomeiwen.com/subject/frfqgktx.html