面试题(5)

2019-08-30 19:43

物体自旋转使用的函数叫什么?物体绕某点旋转使用函数叫什么?

物体自旋转函数transform.Rotate,物体绕某点旋转函数:transform.RotateAround

描述多人联网中位置的同步和聊天通讯的实现方法,并编程写出如何实现多人协同中交互操作。(交互操作例如,血值为100的两个角色人物可以相互射击双方,射击一次减去血值10,当血值为0的时候证明已经死亡)

当实例化一个prefab对象,prefab对象上面挂载了一个继承MonoBehaviour的脚本 1.请问这个脚本分别会按顺序调用哪些函数,并列出哪些函数是反复进去的

2.请问当这个实例化对象先调用了SetActive(false),然后又调用了SetActive(true),那么这个脚本依次会调用哪些函数方法?

3.如果在脚本的Awake()函数中,调用了this.gameObject.AddComponent()(PS:GameController为另一个继承Mono的脚本类),请问此时脚本函数的调用顺序是否发生变化?

if(go.CompareTag(“Enemy”))和if(go.tag == “Enemy”)两种判断方法哪种是合适的,为什么?

第一种合适,因为第二种会占用更多内存。

DestroyImmediate和Destroy的区别是?

DestroyImmeditate 销毁对象的时候,会立即释放资源。Destroy只是从该场景销毁,但是还在内存当中。

详细说明Unity中资源加载的方法,以及他们的区别?

1.通过Resources模块,调用它的load函数:可以直接load并返回某个类型的Object,前提是要把这个资源放在Resource命名的文件夹下,Unity不关有没有场景引用,都会将其全部打入到安装包中。 2.通过bundle的形式:即将资源打成 asset bundle 放在服务器或本地磁盘,然后使用WWW模块get 下来,然后从这个bundle中load某个object。

从代码角度上如何进行内存优化?

分别写出Invoke和协程的几种用法?

以下函数的功能是计算斐波那契数列的第n项,请填空 int func(int n) {

if(n<=2) return 1; return n + func(n-1); }

请实现如下函数,在Unity中有一副骨骼树,请使用递归方式与非递归方式实现先序遍历,

在Unity的Console输出所有骨骼名。 可能用到的函数

public Transform GetChild(int index); public int Transform.childCount

public void OutputTree(Transform root) { }

当实例化一个prefab对象,prefab对象上面挂载了一个继承MonoBehaviour的脚本 1.请问这个脚本分别会按顺序调用哪些函数,并列出哪些函数是反复进去的 2.请问当这个实例化对象先调用了SetActive(false),然后又调用了SetActive(true),那么这个脚本依次会调用哪些函数方法? 3.如果在脚本的Awake()函数中,调用了this.gameObject.AddComponent()(PS:GameController为另一个继承Mono的脚本类),请问此时脚本函数的调用顺序是否发生变化?

DestroyImmediate和Destroy的区别是?

DestroyImmeditate 销毁对象的时候,会立即释放资源。Destroy只是从该场景销毁,但是还在内存当中。

详细说明Unity中资源加载的方法,以及他们的区别?

1.通过Resources模块,调用它的load函数:可以直接load并返回某个类型的Object,前提是要把这个资源放在Resource命名的文件夹下,Unity不关有没有场景引用,都会将其全部打入到安装包中。 2.通过bundle的形式:即将资源打成 asset bundle 放在服务器或本地磁盘,然后使用WWW模块get 下来,然后从这个bundle中load某个object。

下面哪种做法可以打开Unity的Asset Store?(A) A.Windows->Asset Store B.Edit->Asset Store C.File->Asset Store D.Assets->Asset Store

在哪个面板中可以修改物体的空间属性,如位置,朝向,大小等(B) A.Project B.Inspector C.Hierarchy D.Toolbar

如何为一个Asset 资源设定一个Label,从而能够方便准确的搜索到?(D) A.在Project窗口中选中一个Asset,右键->Create->Label B.在Project窗口中选中一个Asset,右键->Add Label

C.在Project窗口中选中一个Asset,在Inspector窗口中点击添加Label的图标 D.在Project窗口中选中一个Asset,在Inspector窗口中点击按钮“Add Label”

Mecanim系统中,Body Mask的作用是?(D) A指定身体的某一部分是否参与骨骼动画 B.指定身体的某一部分是否参与物理模拟

C.指定身体的某一部分是否可以输出骨骼信息 D.指定身体的某一部分是否参与渲染

以下哪种操作步骤可以打开Unity编辑器的Lightmapping视图?(C) A.File->Lightmapping B.Assets->Lightmapping

C.Windows->Lightmapping D.Component->Lightmapping

下列关于光照贴图,说法错误的是?(C) A.使用光照贴图比使用实时光源渲染要快 B.可以降低游戏内存消耗 C.可以增加场景真实感

D.多个物体可以使用同一张光照贴图

如何为物体添加光照贴图所使用的UV?(B) A.不用添加,任何时候都会自动生成

B.更改物体导入设置,勾选“Generate Lighting UVs” C.更改物体导入设置,勾选“Swap UVs”

D.更改物体导入设置,在UVs选项中选择“Use Lightmaps”

在哪个模块下可以修改Render Path?(A)

A.Camera B.Light C.Render Settings D.Project Setting->Quality

以下哪项技术下不是目前Unity所支持的Occlusion Culling技术?(D) A.PVS only B.PVS and dynamic objets

C.Automatic Portal Generation D.Dynamic Only

关于Vector3的API,以下说法正确的是?(C)

A.Vector3.normalize可以获取一个三维向量的法线向量 B.Vector3.magnitude可以获取一个三维向量的长度 C.Vector3.forward与Vector3(0,0,1)是一样的

D.Vector3.Dot(向量A,向量B)是用来计算向量A与向量B的叉乘

下列那些选项不是网格层属性的固有选项?(B) A.Default B.Walkable C.Not Walkable D.Jump

反射的实现原理?

答:审查元数据并收集关于它的类型信息的能力。 实现步骤:

?导入using System.Reflection; ?Assembly.Load(\程序集\加载程序集,返回类型是一个Assembly ?得到程序集中所有类的名称

foreach (Type type in assembly.GetTypes()) {

string t = type.Name;

} ?

?Type type = assembly.GetType(\程序集.类名\获取当前类的类型 ?Activator.CreateInstance(type); //创建此类型实例 ?MethodInfo mInfo = type.GetMethod(\方法名\获取当前方法 ?mInfo.Invoke(null,方法参数);

简述四元数Quaternion的作用,四元数对欧拉角的优点? 答:四元数用于表示旋转 相对欧拉角的优点: ?能进行增量旋转 ?避免万向锁

?给定方位的表达方式有两种,互为负(欧拉角有无数种表达方式)

如何安全的在不同工程间安全地迁移asset数据?三种方法 答:

1.将Assets和Library一起迁移 2.导出包package

3.用unity自带的assets Server功能

OnEnable、Awake、Start运行时的发生顺序?哪些可能在同一个对象周期中反复的发生? 答:Awake–>OnEnable->Start

OnEnable在同一周期中可以反复地发生!

MeshRender中material和sharedmaterial的区别? 答:

修改sharedMaterial将改变所有物体使用这个材质的外观,并且也改变储存在工程里的材质设置。

不推荐修改由sharedMaterial返回的材质。如果你想修改渲染器的材质,使用material替代。

TCP/IP协议栈各个层次及分别的功能

答:网络接口层:这是协议栈的最低层,对应OSI的物理层和数据链路层,主要完成数据帧的实际发送和接收。 网络层:处理分组在网络中的活动,例如路由选择和转发等,这一层主要包括IP协议、ARP、ICMP协议等。

传输层:主要功能是提供应用程序之间的通信,这一层主要是TCP/UDP协议。

应用层:用来处理特定的应用,针对不同的应用提供了不同的协议,例如进行文件传输时用到的FTP协议,发送email用到的SMTP等。

Unity提供了几种光源,分别是什么 答: 四种。

平行光:Directional Light 点光源:Point Light

聚光灯:Spot Light 区域光源:Area Light

简述一下对象池,你觉得在FPS里哪些东西适合使用对象池?

对象池就存放需要被反复调用资源的一个空间,比如游戏中要常被大量复制的对象,子弹,敌人,以及任何重复出现的对象。

移动相机动作在哪个函数里,为什么在这个函数里?

LateUpdate,是在所有的Update结束后才调用,比较适合用于命令脚本的执行。官网上例子是摄像机的跟随,都是所有的Update操作完才进行摄像机的跟进,不然就有可能出现摄像机已经推进了,但是视角里还未有角色的空帧出现。

请简述sealed关键字用在类声明时与函数声明时的作用。

答:类声明时可防止其他类继承此类,在方法中声明则可防止派生类重写此方法。

请简述private,public,protected,internal的区别。 public:对任何类和成员都公开,无限制访问 private:仅对该类公开

protected:对该类和其派生类公开

internal:只能在包含该类的程序集中访问该类 protected internal:protected + internal

什么是渲染管道?

答:是指在显示器上为了显示出图像而经过的一系列必要操作。 渲染管道中的很多步骤,都要将几何物体从一个坐标系中变换到另一个坐标系中去。 主要步骤有:

本地坐标->视图坐标->背面裁剪->光照->裁剪->投影->视图变换->光栅化。

如何优化内存?

答:有很多种方式,例如 1.压缩自带类库;

2.将暂时不用的以后还需要使用的物体隐藏起来而不是直接Destroy掉; 3.释放AssetBundle占用的资源;

4.降低模型的片面数,降低模型的骨骼数量,降低贴图的大小;

5.使用光照贴图,使用多层次细节(LOD),使用着色器(Shader),使用预设(Prefab)。

动态加载资源的方式? 1.Resources.Load(); 2.AssetBundle

Unity5.1版本后可以选择使用Git: https://github.com/applexiaohao/LOAssetFramework.git 三十四:在场景中放置多个Camera并同时处于活动状态会发生什么? 答:游戏界面可以看到很多摄像机的混合。


面试题(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:web期末复习要点

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: