面试题(4)

2019-08-30 19:43

关于 MonoBehaviour.LateUpdate 函数描述错误的是:(B) A.当 MonoBehaviour 类被启用后,每帧调用一次 B.常被用于处理 Rigidbody 的更新

C.在所有 Update 函数执行后才能被调用

D.常被用于实现跟随相机效果,且目标物体的位置已经在 Update 函数中被更新

下列哪个函数不属于碰撞事件(C) A.OnCollisionEnter B.OnCollisionExit C.OnCollisionUpdate D.OnCollisionStay

以下关于 MonoBehaviour.OnGUI()的描述错误的是(D)

A.如果 MonoBehaviour 没有被启用,则OnGUI函数不会被调用 B.用于绘制和处理 GUI events

C.每帧可能会被绘制多次,每次对应于一个 GUI event D.每帧被调用一次

以下哪组摄像机中 Normalized View Port Rect 的数值设置可以使摄像机显示的画面位于1280*720分辨率的屏幕画面右上角(D)

A.X=640,Y=360,W=640,H=360 B.X=640,Y=0,W=640,H=360 C.X=0,Y=0,W=0.5,H=0.5 D.X=0.5,Y=0.5,W=0.5,H=0.5

在Unity引擎中,Collider所指的是什么(D)

A.collider 是Unity引擎中所支持的一种资源,可用作存储网格信息 B.Collider 是Unity引擎中内置的一种组件,可用对网格进行渲染

C.Collider 是Unity引擎中所支持的一种资源,可用作游戏对象的坐标转换 D.Collider 是Unity引擎中内置的一种组件,可用作游戏对象之间的碰撞检测

以下关于WWW.LoadFromCacheOrDownload描述正确的是(C) A.可被用于将 Text Assets 自动缓存到本地磁盘 B.可被用于将 Resource 自动缓存到本地磁盘 C.可被用于将 Asset Bundles 自动缓存到本地磁盘

D.可被用于将任意格式的Unity资源文件自动缓存到本地磁盘

如何实现加载外部视频并播放?

外部视频文件:目前测试仅支持ogg格式(设置网络获取视频时,必须将MIME设置.ogg为application/octet-stream)

场景设置:MainCamera上添加AudioSource脚本;播放物体上(如Plane)添加MovieTest脚本

MovieTest脚本:

using UnityEngine; using System.Collections; public class MovieTest : MonoBehaviour {

//视频纹理

protected MovieTexture movTexture;

AudioClip audio;

AudioSource AudioSource1;

void Start() {

StartCoroutine(DownLoadMovie()); }

void OnGUI() {

if (GUILayout.Button(\播放/继续\ {

//播放/继续播放视频 if (!movTexture.isPlaying) {

movTexture.Play(); AudioSource1.Play(); } }

if (GUILayout.Button(\暂停播放\ {

//暂停播放

movTexture.Pause(); AudioSource1.Pause(); }

if (GUILayout.Button(\停止播放\ {

//停止播放

movTexture.Stop(); AudioSource1.Stop(); } }

IEnumerator DownLoadMovie() {

WWW www = new WWW (\Application.dataPath + \ yield return www;

movTexture = www.movie;

//获取主相机的声源

+

AudioSource1 = Camera.main.GetComponent(typeof(AudioSource)) as AudioSource; //获取视频的声音设置到声源上

AudioSource1.clip = movTexture.audioClip; audio = AudioSource1.clip;

//设置当前对象的主纹理为电影纹理

renderer.material.mainTexture = movTexture; //设置电影纹理播放模式为循环 movTexture.loop = true; } }

游戏对象B是游戏对象A的子物体,游戏对象A经过了旋转,请写出游戏B围绕自身的Y轴进行旋转的脚本语句,以及游戏对象B围绕世界坐标的Y轴旋转的脚本语句。 绕世界坐标旋转:transform.Rotate (transform.up*speed*Time.deltatime); 绕自身Y轴旋转:transform.Rotate (Vector.up*speed*Time.deltatime);

Unity中用过哪些插件?具体功能 FXMaker,制作粒子特效;NGUI,制作2D界面;EasyTouch,摇杆;shaderForge,制作shader;Itween,制作动画;

当删除Unity工程Assets目录下地meta文件时会导致什么?为什么?

会导致在场景中游戏对象看不到,或者报错,材质找不到资源。多人协作的时候会导致资源的重复产生。因为每个资源文件都对应一个.meta文件,这个.meta文件中的guid就是唯一标识这个资源的。材质就是通过这个guid来记录自己使用了那些资源,而且同一个资源的guid会因为不同的电脑而不同,所以当你上传了丢失了.meta文件的资源的时候,到了别人的机器上就会重新产生guid,那个这个资源就相当于垃圾了。

频繁创建GameObject会降低程序性能为什么?怎么解决?

频繁创建游戏对象,会增加游戏的Drawcall数,降低帧率,GPU会一直在渲染绘制。可以通过对象池来管理对象:当需要创建一个游戏对象时,先去对象池中查找一下对象池中是否存在没有被正在使用的对象,如果有的话直接使用这个对象,并把它标记为正在使用,没有话就创建一个,并把它添加到池中,然后标记为使用中。一个游戏对象使用完毕的时候,不要销毁掉,把它放在池中,标记为未使用。

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

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

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

以下哪个函数在游戏进入新场景后会被马上调用(B) A.MonoBehaviour.OnSceneWastLoaded()

B.MonoBehaviour.OnSceneEnter() C.MonoBehaviour.OnLevelEnter()

D.MonoBehaviour.OnLevelWastLoaded()

采用Input.mousePosition 来获取鼠标在屏幕上的位置,以下表达正确的是(C) A.左上角为原点(0,0),右下角为(Screen.Width, Screen.Height) B.左下角为原点(0,0),右下角为(Screen.Height, Screen.Width) C.左下角为原点(0,0),右上角为(Screen.Width, Screen.Height) D.左上角为原点(0,0),右下角为(Screen.Height, Screen.Width)

如何通过脚本来删除其自身对应的Gameobject(A) A.Destroy(gameObject) B.this.Destroy() C.Destroy(this) D.其他三项都可以

某个GameObject有一个名为MyScript的脚本,该脚本中有一个名为DoSomething 的函数,则如何在该Gameobject的另外一个脚本中调用该函数?(A) A.GetComponent().DoSomething() B.GetComponent

C.GetComponent().Call(“DoSomething”) D.GetComponent

以下选项中,将游戏对象绕Z轴逆时针旋转90度(C) A.transform.rotation = Quaternion.Euler(0,0,90) B.transform.rotation = Quaternion.Angle(0,0,90) C.transform.Rotate(new Vector3(0,0,90)) D.transform.Rotate(new Vector3(90,0,0))

public static function

InitializeServer(connections:int,listenPort:int,useNat:bool):NetworkConnectionError;解释一下函数,参数以及返回值的意思。

初始化服务器。connections是允许的入站连接或玩家的数量,listenPort是要监听的端口,useNat设置NAT穿透功能。如果你想要这个服务器能够接受连接使用NAT穿透,使用facilitator,设置这个为true。如果有错误会有返回错误。

请写出以下函数的含义和运算结果 delegate b Func(a a1); static void Main(string[] args) {

Func mFunc = x => x == 5; Console.WriteLine(mFunc(6)); }

false,就是定义一个delegate,返回值类型为 b,有一个参数,类型为a。

编写一个函数,输入一个32位整数,计算这个整数有多少个bit为1.

uint BitCount (uint n) {

uint c = 0; // 计数器 while (n > 0) {

if ((n & 1) == 1) // 当前位是1 ++c; // 计数器加1 n >>= 1; // 移位 }

return c; }

某游戏中的装备系统有16种附加属性,每种附加属性使用一个32位的ID表示(比如10001表示加人物hp的附加属性,10002表示加人物mp的附加属性),一件装备做多有4个附加属性,请写一个程序输出所有附加属性的组合。

请实现如下函数,在Unity中有一副骨骼树,请使用递归方式与非递归方式实现先序遍历,在Unity的Console输出所有骨骼名。 可能用到的函数

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

public void OutputTree(Transform root) { }

简要解释下数据库中ACID的含义。 ACID是指在可靠数据库管理系统(DBMS)中,事务所具有的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。

原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 一致性是指在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。这是说数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。例如:对银行转帐事务,不管事务成功还是失败,应该保证事务结束后ACCOUNT表中aaa和bbb的存款总额为2000元。 隔离性多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其它事务运行效果。这指的是在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。由并发事务所做的修改必须与任何其他并发事务所做的修改隔离。事务查看数据更新时,数据所处的状态要么是另一事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看到中间状态的数据。 持久性,意味着在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。即使出现了任何事故比如断电等,事务一旦提交,则持久化保存在数据库中。

简述从C/C++源代码生成可执行文件所经历的几个过程和每个过程中所做的事情。 预编译-》编译-》链接-》执行

47.解释一下Unity3D中的协程(coroutine)是什么?并举例说明

在主线程运行的同时开启另一段逻辑处理,来协助当前程序的执行,协程很像多线程,但是不是多线程,Unity的协程实在每帧结束之后去检测yield的条件是否满足。


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

下一篇:web期末复习要点

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

马上注册会员

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