unity常见面试题2

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的实现原理

/n5/article/details/3105872

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

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

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

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

/88999660/archive/2013/03/15/2961663.html

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

答:Destory

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

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

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

答:

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

· 导出包

· 用unity自带的assets Server功能

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

答:Convex?

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

穿透(碰撞检测失败)

该文章出自unity狗刨学习网

 

第二篇:unity 面试题

1、C#程序题

private static void aaa(int x) { x = 10; }private static void bbb(ref int x) { x = 10; } static void Main(string[] args) 是:___ bbb(ref x); //现在x的值是:___}

答案:0,,10。

详细解答:一个是复制一份值过去,一个是把地址传过去

2、英文翻译题(把下面文字翻译成中文)

Transform.LocalPosition

var localPosition:Vector3;

Description:

Position of the transform relative to the parent transform.

If the transform has no parent,it is the same as Transform.position.

Note that the parent transform's world rotation and scale are applied to the local position when calculating the描述:

相对于父级的变换的位置。

如果该变换没有父级,那么等同于Transform.position。 unit in Transform.position is always 1 unit in transform.localPosition will get scaled by the sca

注意当计算世界的位置时,父级变换的世界旋转和缩放被应用到自身的位置。意思是说Transform.position的Transform.localPosition的1个单位将由所有祖先的缩放获得缩放,简单来所自身位置的1单位将受它所有上

3、U3D提供了一个用于保存读取数据的类,(playerprefs),请列出保存读取整形数据的函数。

答案:PlayerPrefs.SetInt();

详细解答:

PlayerPrefs类可保存与读取3种基本的数据类型,它们是浮点型、整形和字符串型,涉及的方法如下:

SetFloat();保存浮点类型

SetInt();保存整形

SetString();保存字符串型

GetFloat();获取浮点类型

GetInt();获取整形

GetString();获取字符串

4、请简述向量点乘的含义:

向量u点乘向量v;u的长度与v在u上的投影长度的乘积,它是一个标量,而且可正可负。

参考:

/cly84920/item/7bc79fdf97ff4f91260ae733

L1oKfb1yTXSHck6DX1QRrdO

5、物体发生碰撞的必要条件是什么。

答案:两个物体都必须带有碰撞器(Collider),其中一个物体还必须带有Rigidbody刚体。

6、程序题:aaa()函数的意义,以及test()执行以后在控制台输出什么?

public delegate void DoHurt();

protected DoHurt hurtCall; /link?url=9Nq1MttA0DqgPgYWYIix7hpqUTDv8ifyq4xK09LtzaWpLNxYpnsjhqU1

public void aaa(DoHurt call){this.hurtCall=(DoHurt)Delegate.Combine(this.hurtCall,call);}public void myHurt00myhurt002(int a,int b){Debug.Log("调用2");}public void test(){this.aaa(myHurt001);this.aaa(myHurt002);th答案:貌似this.aaa(myHurt002)会报错。

详细解答:如果hurtCall为null,call不为null时,hurtCall这个委托变量就指向call指向的方法,如果hurtCa个委托变量就指向hurtCall指向的方法。aaa方法的参数为一个无参的委托变量,这里面指向了myHurt002,而

题欢迎探讨。

7、游戏对象B是游戏对象A的子物体,游戏对象A经过了旋转,请写出游戏对象B围绕自身的Y轴进行旋转坐标的Y轴旋转的脚本语句。

对象B围绕自身的Y轴进行旋转:B.transform.Rotate(Vector.up);

对象B围绕世界坐标的Y轴旋转:B.transform.RotateAround(Vector.up);

详细解答:transform.Rotate();用于设置模型自身旋转;transform.RotateAround();用于设置模型围绕某一个Vector.right:X轴方向;

Vector.up:Y轴方向;

Vector.forward:Z轴方向。

8、已知三维空间中的A、B两个点的坐标,请写出在X-Z平面上, 两个之间的距离的计算函数。

其实就是求A、B两个点在XOZ平面上的投影的距离。投影以后,Y坐标等于0,X、Z不变,Z坐标的差的平方的和,再开方。

相关推荐