博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
某公司的U3D笔试题
阅读量:5995 次
发布时间:2019-06-20

本文共 3419 字,大约阅读时间需要 11 分钟。

 

今天这套笔试题感觉做得一般。

随后是二对一的技术面试,但涉及的技术细节相对较少,更多的是对以前工作、项目经历的询问。

然后说今天先到这里,让我等通知。

我还特意问了一下,通知大概要多久,他们说这个得看hr,他们只是给hr传达他们的信息。

当时就觉得差不多挂了、、、

1. 请简述值类型与引用类型的区别

答:

可参考

 

2.C#中所有引用类型的基类是什么

答:

引用类型的基类是System.Object 值类型的基类是System.ValueType

同时,值类型也隐式继承自System.Object

 

3.请简述ArrayList和List<Int>的主要区别

答:

ArrayList存在不安全类型‘(ArrayList会把所有插入其中的数据都当做Object来处理)

装箱拆箱的操作(费时)

 

4.请简述GC(垃圾回收)产生的原因,并描述如何避免

:GC回收堆上的内存

避免:1)减少new产生对象的次数

2)使用公用的对象(静态成员)

3)将String换为StringBuilder

 

5.请描述Interface与抽象类之间的不同

答:

参考

6.下列代码在运行中会产生几个临时对象?

string a = new string("abc");            a = (a.ToUpper() + "123").Substring(0, 2);

答:其实在C#中第一行是会出错的(Java中倒是可行)。应该这样初始化:

string b = new string(new char[]{'a','b','c'});

 

7.下列代码在运行中会发生什么问题?如何避免?

List
ls = new List
(new int[] { 1, 2, 3, 4, 5 }); foreach (int item in ls) { Console.WriteLine(item * item); ls.Remove(item); }

答:会产生运行时错误,因为foreach是只读的。不能一边遍历一边修改。

8.请简述关键字Sealed用在类声明和函数声明时的作用

答:

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

 

9.请简述private,public,protected,internal的区别

答:

public:对任何类和成员都公开,无限制访问

private:仅对该类公开

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

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

protected internal:protected + internal

 

10.反射的实现原理?

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

参考

 

11..Net与Mono的关系?

答:Mono官网主页

Mono is a software platform designed to allow developers to easily create 

cross platform applications. Sponsored by , Mono is an open source 
implementation of Microsoft's .NET Framework based on the  standards for  and the .

 

12.简述Unity3D支持的作为脚本的语言的名称

答:Unity的脚本语言基于Mono的.Net平台上运行,可以使用.NET库,这也为XML、数据库、正则表达式等问题提供了很好的解决方案。

Unity里的脚本都会经过编译,他们的运行速度也很快。这三种语言实际上的功能和运行速度是一样的,区别主要体现在语言特性上。

JavaScript:和网页中常用的JavaScript不一样,它编译后的运行速度很快,语法方面也会有不少区别。

C#

Boo:可以看做是Python语言的变种,又糅合了Ruby和C#的特性,它是静态类型语言

 

13.Unity3D是否支持写成多线程程序?如果支持的话需要注意什么?

答:参考

 仅能从主线程中访问Unity3D的组件,对象和Unity3D系统调用

 

14.Unity3D的协程和C#线程之间的区别是什么?

答:

多线程程序同时运行多个线程 ,而在任一指定时刻只有一个协程在运行,并且这个正在运行的协同程序只在必要时才被挂起。

除主线程之外的线程无法访问Unity3D的对象、组件、方法。

 

15.U3D中用于记录节点空间几何信息的组件名称,及其父类名称

答:Transform 父类是 Component

 

16.简述四元数的作用,四元数对欧拉角的优点?

答:四元数用于表示旋转

相对欧拉角的优点:

1)能进行增量旋转

2)避免万向锁

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

17.向量的点乘、叉乘以及归一化的意义?

1)点乘描述了两个向量的相似程度,结果越大两向量越相似,还可表示投影

2)叉乘得到的向量垂直于原来的两个向量

3)标准化向量:用在只关系方向,不关心大小的时候

 

18.矩阵相乘的意义及注意点

用于表示线性变换:旋转、缩放、投影、平移、仿射

注意矩阵的蠕变:误差的积累

 

19.为何大家都在移动设备上寻求U3D原生GUI的替代方案

不美观,OnGUI很耗费时间,使用不方便 

 

20.请简述如何在不同分辨率下保持UI的一致性

原生GUI 

NGUI 

 

21.为什么dynamic font在unicode环境下优于static font

Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。

使用动态字体时,Unity将不会预先生成一个与所有字体的字符纹理。当需要支持亚洲语言或者较大的字体的时候,若使用正常纹理,则字体的纹理将非常大。

 

22.Render的作用?描述MeshRender和SkinnedMeshRender的关系与不同

A renderer is what makes an object appear on the screen。

 

23.简述SkinnedMesh的实现原理

 

24.在场景中放置多个Camera并同时处于活动状态会发生什么

答:

游戏界面可以看到很多摄像机的混合

 

25.Prefab的作用?如何在移动环境的设备下恰当地使用它?

答:

Prefab在实例化的时候用到,主要用于经常会用到的物体,属性方便修改

 

 

26.如何销毁一个UnityEngine.Object及其子类

答:

Destory

 

27.为什么Unity3D中会发生在组件上出现数据丢失的情况?

答:

组件上绑定的对象被删除了

 

28.如何安全的在不同工程间安全地迁移asset数据?三种

答:

将Assets目录和Library目录一起迁移

导出包

用unity自带的assets Server功能

 

29.MeshCollider和其他Collider的一个主要不同点?

答:Convex?

 

30.当一个细小的高速物体撞向另一个较大的物体时,会出现什么情况?如何避免?

穿透(碰撞检测失败)

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

Awake -》OnEnable-》Start

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

 

32.请简述OnBecameVisible及OnBecameInvisible的发生时机,以及这一对回调函数的意义?

当物体是否可见切换之时。

可以用于只需要在物体可见时才进行的计算。

 

33.Unity3D如何获知场景中需要加载的数据?

题目是获取的意思?

Resource.Load

AssetBundle

 

34.MeshRender中material和sharedmaterial的区别?

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

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

转载地址:http://djqlx.baihongyu.com/

你可能感兴趣的文章
SFB 项目经验-16-呼叫前客户端性能测试
查看>>
我是如何帮助创业公司改进企业工作的
查看>>
taglist
查看>>
UITabBarController 的使用
查看>>
卡特兰数
查看>>
epoll实现机制分析
查看>>
windows 2008 r2 安装TabsStudio
查看>>
级联分类器训练
查看>>
linux下日语语言包安装
查看>>
Java内存回收 - 落日之心的日志 - 网易博客
查看>>
微软BI 之SSIS 系列 - 导出数据到 Excel 2013 的实现
查看>>
php 学习路线 赵兴壮2014年4月28 日 加油
查看>>
高精确度且线程分离的定时器——多媒体定时器
查看>>
Linux命令工具基础04 磁盘管理
查看>>
设计模式---建造者模式Builder(创建型)
查看>>
SVG
查看>>
maven web配置发布路径 cargo自动部署项目到tomcat
查看>>
linxu select 返回值
查看>>
代码中特殊的注释技术——TODO、FIXME和XXX的用处
查看>>
Android开发(20)--RadioGroup的使用
查看>>