unity3d面试题摘选(全)
=======================================
数据结构和算法非常重要。图形学也非常重要!
大的游戏公司非常看重个人基础、综合能力。也有的看重你实际工作能力,看你的Demo。
高频问答的问题:
一.什么是渲染管道?
是指在显示器上为了显示出图像而经过的一系列必要操作。
渲染管道中的非常多步骤,都要将几何物体从一个坐标系中变换到还有一个坐标系中去。
主要步骤有:
本地坐标->视图坐标->背面裁剪->光照->裁剪->投影->视图变换->光栅化。
二.怎样优化内存?
有非常多种方式,比如
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下怎样安全的在不同project间迁移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.反向旋转动画的方法是什么?
30.碰撞检測须要物体具备什么属性?
31.获取、添加、删除组件的命令各自是什么?
获取:GetComponent
添加:AddComponent
删除:Destroy
32.Animation.CrossFade命令作用是:(C)
A.动画放大 B.动画转换 C.动画的淡入为其它动画
33.Application.loadLevel命令为:(A)
A.载入关卡 B.异步载入关卡 C.载入动作
34.调试记录到控制台的命令是什么?
Debug.Log();
35.编辑器类存放路径是什么?
project文件夹下的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.请简述向量的点乘,向量的叉乘以及向量归一化的几何意义?
点乘的几何意义是:计算两个向量之间的夹角,以及在某一方向上的投影;
叉乘的几何意义是:创建垂直于平面。三角形,或者多边形的向量
unity3d面试题摘选(全)的更多相关文章
- LINUX内核面试题摘选
转载:http://blog.csdn.net/zm1_1zm/article/details/77231197 1) Linux中主要有哪几种内核锁? 答:Linux的同步机制从2.0到2.6以来不 ...
- 在jquery中,全选/全不选的表示方法
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- 【摘选引用】在安全的SQL 密码也不过如此
SQL密码再安全也禁不住破解!!! http://www.sqlservercentral.com/articles/password+cracking/96540/ 备注:[摘选引用]是本人日常收集 ...
- JS checkbox 全选 全不选
/* JS checkbox 全选 全不选 Html中checkbox: <input type="checkbox" name="cbx" value= ...
- checkbox实现全选全不选
1.jQuery实现checkbox全选全不选 <!DOCTYPE html> <head runat="server"> <title>jQu ...
- Dynamic CRM 2013学习笔记(二十六)报表设计:Reporting Service报表 动态参数、参数多选全选、动态列、动态显示行字体颜色
上次介绍过CRM里开始报表的一些注意事项:Dynamic CRM 2013学习笔记(十五)报表入门.开发工具及注意事项,本文继续介绍报表里的一些动态效果:动态显示参数,参数是从数据库里查询出来的:参数 ...
- jquery 全选 全不选 反选
1.概述 在项目中经常遇到列表中对复选框进行勾选操作,全选...反选.. 2. example <html> <body> <form id="test-for ...
- 利用jQuery实现CheckBox全选/全不选/反选
转自:http://www.cnblogs.com/linjiqin/p/3148259.html jQuery有些版本中实现CheckBox全选/全不选/反选会有bug,经测试jquery-1.3. ...
- 分享我的2014年3月unity3d面试题与参考答案
今年3月份面试unity3d游戏程序,先做的面试题,然后人事问了我几个之前游戏开发的问题,问我英语怎么样等等,介绍了公司情况和对unity3d程序的要求.之后就回来了,总共面了不到1个半小时吧.笔试答 ...
随机推荐
- windows7 安装 choco
windows7 安装 choco: cmd下: @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -N ...
- 【JavaScript从入门到放弃】JS基础-01
作为一个前端开发人员,JS是我们行走江湖吃饭的家伙.基本上一个前端人员能值多少大洋,就看JS了.虽然各种框架层出不穷,但是归根结底学好原生JS才是硬道理. 学习任何新东西其实都遵循 10000 小时成 ...
- 使用boost.python进行混合开发
使用boost.python进行混合开发 原文请参照官网和各方参考,本文有改动! 参考链接:http://blog.csdn.net/lanbing510/article/details/121979 ...
- 如何防范自己的IP泄漏
在正式进行各种“黑客行为”之前,黑客会采取各种手段,探测(也可以说“侦察”)对方的主机信息,以便决定使用何种最有效的方法达到自己的目的.来看看黑客是如何获知最基本的网络信息——对方的IP地址:以及用户 ...
- 如何处理CSS3属性前缀(转载)总结
今天闲来无聊,重新来说说CSS3前缀的问题.在春节前和@一丝姐姐说起Sass中有关于gradient的mixins.姐姐说: 为什么还要用mixin呢?为什么不使用Autoprefixer?使用Aut ...
- 洛谷P3113 [USACO14DEC]马拉松赛跑Marathon_Gold 线段树维护区间最大值 模板
如此之裸- Code: #include<cstdio> #include<cstring> #include<cmath> #include<algorit ...
- 【JavaScript框架封装】实现一个类似于JQuery的DOM框架的封装
// DOM框架(选择器框架) (function (xframe) { // 需要参与链式访问的(必须使用prototype的方式来给对象扩充方法) xframe.extend({ /** * 向现 ...
- 【JavaScript框架封装】使用Prototype给Array,String,Function对象的方法扩充
/* * @Author: 我爱科技论坛* @Time: 20180705 * @Desc: 实现一个类似于JQuery功能的框架* V 1.0: 实现了基础框架.事件框架.CSS框架.属性框架.内容 ...
- Ubuntu环境搭建svn服务器
记录一次使用Ubuntu环境搭建svn服务器的详细步骤 一.查看是否已经安装svn 命令:svn如果显示以下信息,说明已安装 二.卸载已安装的svn 命令:sudo apt-get remove ...
- Netty、NIO、多线程
一:Netty.NIO.多线程? 时隔很久终于又更新了!之前一直迟迟未动也是因为积累不够,后面比较难下手.过年期间@李林锋hw发布了一个Netty5.0架构剖析和源码解读,看完也是收获不少.前面的文章 ...