U3D面试题系列二
高频问题:
一.什么是渲染管道?
是指在显示器上为了显示出图像而经过的一系列必要操作。
渲染管道中的很多步骤,都要将几何物体从一个坐标系中变换到另一个坐标系中去。
主要步骤有:
本地坐标->视图坐标->背面裁剪->光照->裁剪->投影->视图变换->光栅化。
二.如何优化内存?
有很多种方式,例如
1.压缩自带类库;
2.将暂时不用的以后还需要使用的物体隐藏起来而不是直接Destroy掉;
3.释放AssetBundle占用的资源;
4.降低模型的片面数,降低模型的骨骼数量,降低贴图的大小;
5.使用光照贴图,使用多层次细节(LOD),使用着色器(Shader),使用预设(Prefab)。
三、动态加载资源的方式?(有时候也问区别,具体请百度)
1.Resources.Load();
2.AssetBundle
四、什么是协同程序?
在主线程运行时同时开启另一段逻辑处理,来协助当前程序的执行。换句话说,开启协程就是开启一个线程。可以用来控制运动、序列以及对象的行为。
五、用过哪些插件?
1.使用Unity3d实现2d游戏,有几种方式?
1.使用本身的GUI;
2.把摄像机的Projection(投影)值调为Orthographic(正交投影),不考虑z轴;
3.使用2d插件,如:2DToolKit;
2.Unity3d中的碰撞器和触发器的区别?
碰撞器有碰撞的效果,IsTrigger=false,可以调用OnCollisionEnter/Stay/Exit函数;
触发器没有碰撞效果,IsTrigger=true,可以调用OnTriggerEnter/Stay/Exit函数。
3.物体发生碰撞的必要条件
两个物体都必须带有碰撞器(Collider),其中一个物体还必须带有Rigidbody刚体。
4.CharacterController和Rigidbody的区别?
CharacterController自带胶囊碰撞器,里面包含有刚体的属性;
Rigidbody就是刚体,使物体带有刚体的特征。
5.在物体发生碰撞的整个过程中,有几个阶段,分别列出对应的函数
三个阶段
1.OnCollisionEnter
2.OnCollisionStay
3.OnCollisionExit
6.Unity3d的物理引擎中,有几种施加力的方式,分别描述出来
rigidbody.AddForce/AddForceAtPosition,都在rigidbody系列函数中。
7.什么叫做链条关节?
Hinge Joint,可以模拟两个物体间用一根链条连接在一起的情况,能保持两个物体在一个固定距离内部相互移动而不产生作用力,但是达到固定距离后就会产生拉力。
8.物体自身旋转使用的函数?
Transform.Rotate()
9.物体围绕某点旋转使用的函数?
Transform.RotateAround()
10.Unity3d提供了一个用于保存和读取数据的类(PlayerPrefs),请列出保存和读取整形数据的函数
PlayerPrefs.SetInt() PlayerPrefs.GetInt()
11.Unity3d提供了几种光源类型,分别是哪几种?
四种。
平行光:Directional Light 点光源:Point Light
聚光灯:Spot Light 区域光源:Area Light
12.Unity3d脚本从唤醒到销毁有着一套比较完整的生命周期,请列出系统自带的几个重要的方法。
Awake——>Start——>Update——>FixedUpdate——>LateUpdate——>OnGUI——>Reset——>OnDisable——>OnDestroy
13.物理更新一般放在哪个系统函数里?
FixedUpdate,每固定帧绘制时执行一次,和Update不同的是FixedUpdate是渲染帧执行,如果你的渲染效率低下的时候FixedUpdate调用次数就会跟着下降。FixedUpdate比较适用于物理引擎的计算,因为是跟每帧渲染有关。Update就比较适合做控制。
14.移动摄像机的动作放在哪个系统函数中,为什么放在这个函数中?
LateUpdate,在每帧执行完毕调用,它是在所有Update结束后才调,比较适合用于命令脚本的执行。官网上例子是摄像机的跟随,都是在所有Update操作完才跟进摄像机,不然就有可能出现摄像机已经推进了,但是视角里还未有角色的空帧出现。
15.当游戏中需要频繁创建一个物体时,我们需要怎样做能够节省内存?
使用预制物体对象Prefab,然后复制创建。
16.在场景中放置多个Camera并同时处于活动状态会发生什么?
游戏界面可以看到很多摄像机的混合。
17.请描述Prefab的作用,并描述如何在移动设备的环境下恰当的使用它?
Prefab在实例化的时候用到,主要用于经常会用到的物体,属性方便修改。
18.如何销毁一个UnityEngine.Object及其子类?
使用Destroy()方法;
19.请简述Unity3d下如何安全的在不同工程间迁移asset数据,请列举出三种方法?
1.可以把assets目录和Library目录一起迁移
2.导出包
3.用Unity带的assets Server功能
20.请描述游戏动画有哪几种,以及其原理?
主要有关节动画、骨骼动画、单一网格模型动画(关键帧动画)。
关节动画:把角色分成若干独立部分,一个部分对应一个网格模型,部分的动画连接成一个整体的动画,角色比较灵活,Quake2中使用这种动画;
骨骼动画,广泛应用的动画方式,集成了以上两个方式的优点,骨骼按角色特点组成一定的层次结构,有关节相连,可做相对运动,皮肤作为单一网格蒙在骨骼之外,决定角色的外观;
单一网格模型动画由一个完整的网格模型构成,在动画序列的关键帧里记录各个顶点的原位置及其改变量,然后插值运算实现动画效果,角色动画较真实。
21.请描述为什么Unity3d中会发生在组件上出现数据丢失的情况
一般是组件上绑定的物体对象被删除了
22.alpha blend工作原理
Alpha Blend 实现透明效果,不过只能针对某块区域进行alpha操作,透明度可设。
23.写出光照计算中的diffuse的计算公式
diffuse = Kd x colorLight x max(N*L,0);Kd 漫反射系数、colorLight 光的颜色、N 单位法线向量、L 由点指向光源的单位向量、其中N与L点乘,如果结果小于等于0,则漫反射为0。
24.Lod是什么,优缺点是什么?
LOD(Level of detail)多层次细节,是最常用的游戏优化技术。它按照模型的位置和重要程度决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。
25.两种阴影判断的方法、工作原理。
26.Vertex Shader是什么,怎么计算?
顶点着色器
27.MipMap是什么,作用?
MipMapping:在三维计算机图形的贴图渲染中有常用的技术,为加快渲染进度和减少图像锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件,这样的贴图被称为MipMap。
28.机试:二选一
1.用代码实现第三角色控制器
2.实现吊机吊物体的功能
29.反向旋转动画的方法是什么?
反转动画,讲动画的速度调到-1,碰撞时,被碰撞物体与碰撞物体有collider组件,碰撞物体有刚体组件,或角色碰撞得包含角色组件 OR 改变animation.speed
30.碰撞检测需要物体具备什么属性?
能检测碰撞发生的方式有两种,一种是利用碰撞器,另一种则是利用触发器
31.获取、增加、删除组件的命令分别是什么?
获取:GetComponent
增加:AddComponent
删除:Destroy
32.Animation.CrossFade命令作用是:(C)
A.动画放大 B.动画转换 C.动画的淡入为其他动画
33.Application.loadLevel命令为:(A)
A.加载关卡 B.异步加载关卡 C.加载动作
34.调试记录到控制台的命令是什么?
Debug.Log();
35.编辑器类存放路径是什么?
工程目录下的Assets/Editor文件夹下。
36.使用原生GUI创建一个可以拖动的窗口命令是什么?
GUI.DragWindow();
37.localPosition与Position的使用区别?
localPosition:自身位置,相对于父级的变换的位置。
Position:在世界坐标transform的位置
38.意义连线
Mathf.Round 插值
Mathf.Clamp 四舍五入
Mathf.Lerp 限制
39.写一个计时器工具,从整点开始计时,格式为:00:00:00
40.写出Animation的五个方法
41.怎么拿到一个对象上脚本的方法
GameObject.GetComponent<>();
42.上机题:用鼠标实现在场景中拖动物体,用鼠标滚轮实现缩放(用一个Cube即可)。
43.请简述向量的点乘,向量的叉乘以及向量归一化的几何意义?
点乘的几何意义是:计算两个向量之间的夹角,以及在某一方向上的投影;
叉乘的几何意义是:创建垂直于平面,三角形,或者多边形的向量;
参考:
http://blog.sina.com.cn/s/blog_9283b6f601017hfw.html
U3D面试题系列二的更多相关文章
- 很有用的PHP笔试题系列二
1.如何用php的环境变量得到一个网页地址的内容?ip地址又要怎样得到? Gethostbyname() echo $_SERVER ["PHP_SELF"];echo $_SER ...
- 面试必备【含答案】Java面试题系列(二
1.写clone()方法时,通常都有一行代码,是什么?答:super.clone(),他负责产生正确大小的空间,并逐位复制. 2.GC 是什么? 为什么要有GC?答:GC 是垃圾收集的意思(Gabag ...
- .NET面试题系列[0] - 写在前面
.NET面试题系列目录 .NET面试题系列[1] - .NET框架基础知识(1) .NET面试题系列[2] - .NET框架基础知识(2) .NET面试题系列[3] - C# 基础知识(1) .NET ...
- [知识库分享系列] 二、.NET(ASP.NET)
最近时间又有了新的想法,当我用新的眼光在整理一些很老的知识库时,发现很多东西都已经过时,或者是很基础很零碎的知识点.如果分享出去大家不看倒好,更担心的是会误人子弟,但为了保证此系列的完整,还是选择分享 ...
- 【转载】.NET面试题系列[0] - 写在前面
原文:.NET面试题系列[0] - 写在前面 索引: .NET框架基础知识[1] - .NET框架基础知识(1) http://www.cnblogs.com/haoyifei/p/5643689.h ...
- .NET面试题系列
索引: .NET框架基础知识[1] - http://www.cnblogs.com/haoyifei/p/5643689.html .NET框架基础知识[2] - http://www.cnblog ...
- 经典面试题(二)附答案 算法+数据结构+代码 微软Microsoft、谷歌Google、百度、腾讯
1.正整数序列Q中的每个元素都至少能被正整数a和b中的一个整除,现给定a和b,需要计算出Q中的前几项, 例如,当a=3,b=5,N=6时,序列为3,5,6,9,10,12 (1).设计一个函数void ...
- .NET面试题系列[16] - 多线程概念(1)
.NET面试题系列目录 这篇文章主要是各个百科中的一些摘抄,简述了进程和线程的来源,为什么出现了进程和线程. 操作系统层面中进程和线程的实现 操作系统发展史 直到20世纪50年代中期,还没出现操作系统 ...
- .NET技术面试题系列(1) 基础概念
这是.NET技术面试题系列第一篇,今天主要分享基础概念. 1.简述 private. protected. public.internal 修饰符的访问权限 private : 私有成员, 在类的内部 ...
随机推荐
- genstr.py
#!/usr/bin/python #-*- coding:utf-8 –*- import os import sys import re import shutil import xlrd imp ...
- svn使用openldap验证apache访问方式
启用svn服务器的sasl验证机制 1.安装cyrus-sasl认证包 # yum install -y *sasl* # rpm -qa|grep sasl cyrus-sasl-2.1.23-15 ...
- centos6下的lvm逻辑卷的管理
LVM:Logical Volume Manager 将多块设备组合成一个来使用 dm:device mapper 设备映射 设备文件 /dev/卷组名/逻辑卷名 /dev/mapp ...
- favicon.ico问题
在访问web的时候,有时出现favicon.ico 不知道这是一个什么东西,查看百度:
- 【前端】三个bug
目录 一.Array对象的indexOf() 二.使用jquery,clone()下拉框问题 三.jquery获取获取html5的data-*属性 一.Array对象的indexOf() 1.inde ...
- OCM_第十五天课程:Section6 —》数据库性能调优 _SQL 访问建议 /SQL 性能分析器/配置基线模板/SQL 执行计划管理/实例限制
注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...
- VIM 报错
syntax error: unexpected end of file if 没配对 在最后加 fi 试试 环境变量用不了 export PATH=/usr/bin:/usr/sbin:/bin:/ ...
- html----属性操作
1.文本 十六进制值 - 如: #FF0000 一个RGB值 - 如: RGB(255,0,0) 颜色的名称 - 如: red‘’RGBA() 2.水平对齐方式 text-align 属性规定元素中 ...
- [主席树 强制在线]ZOJ3888 Twelves Monkeys
题意:有n年,其中m年可以乘时光机回到过去,q个询问 下面m行,x,y 表示可以在y年穿越回x年, 保证y>x 下面q个询问, 每个询问有个年份k 问的是k年前面 有多少年可以通过一种以上($\ ...
- visual studio 2015百度云下载
visual studio 2015百度云下载 https://pan.baidu.com/s/1b198Zo3mX5_zA2VX3xRRfw 提取码: 关注公众号[GitHubCN]回复2015获取