unity3D学习知识点总结(优秀范文5篇)

时间:2019-05-12 15:36:47下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《unity3D学习知识点总结》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《unity3D学习知识点总结》。

第一篇:unity3D学习知识点总结

1.unity简介和安装(x)

2.unity基础操作

unity窗口界面介绍

1.Scene场景编辑窗口(Q、W、E、R、T/按住鼠标右键—旋转视角、按住鼠标右键Q、E、W、S、A、D)

2.Game游戏运行窗口(运行按钮,暂停按钮,下一帧画面)3.Hierarchy 场景物体列表窗口(三角符号表示物体间的父子关系)

4.Project 项目资源列表窗口(与文件夹对应,mete文件,移动尽量在unity中移动而不是在文件夹中移动,可能报错)

5.Inspector 属性编辑列表窗口(选中Hierarchy物体,出现物体相关属性)6.Console 控制台输出窗口

7.其他常用窗口:Layers(层)2by3(显示模式)

unity菜单界面介绍 1.file 文件菜单 2.edit 编辑菜单 3.Assets 资源菜单

4.Gameobject 物体资源菜单 5.Component 组件菜单 6.Window 窗口菜单 7.Help 帮助菜单

Scene与场景漫游

1.Scene窗口各项工具

Q、W、E、R 按住鼠标右键Q、W、E、R Pivot 物体自己的中心/center 所有物体加权之后的中心 Global 世界坐标/local 自身坐标 Textured Wite/render Paths显示 2D/3D 2.快捷键与视角的移动

Hierarchy与场景搭建

1.Gameobject: 基本组件

gameobject—>create other 2.Gameobject: 灯光组件 3.Gameobject: 物体组件 4.Gameobject:其他组件 5.Hierarchy层级关系与应用 6.场景搭建案例

Project与资源管理 Inspector与游戏组件

3.C#语言基础

C#的值类型 C#的引用类型 C#的类型转换 C#的逻辑语句 C#的集合类型

C#的面向对象特性封装、继承、多态

Unity 协程:

和线程的区别:没有异步同步的概念,每一帧都执行(有内容的情况);

协程的作用:1)延时(等待)一段时间执行代码;2)等某个操作完成之后再执行后面的代码。总结起来就是一句话:控制代码在特定的时机执行。

4.Unity脚本开发基础

脚本介绍

脚本生命周期和脚本变量 脚本的响应时间和组件访问 Transform场景物体的变换 脚本开发中的基础数学 脚本开发中的3D数学 脚本开发中的输入和控制 常用的方法函数 GUI组件的应用

代码调试与MonoDevelop的使用

在float类型(public)前面加上[Range(0,10)],这样在检视面板中可以拖拽调整变量

5.Unity界面系统

UGUI系统的介绍和创建Canvas画布 Native2D系统的介绍与使用 Rect Transform 界面系统的布局 UI Event界面系统的事件机制 UI Element 界面系统的可视组件 Auto Layout 界面系统的自动布局

6.动画系统

动画系统的介绍 资源和模型导入

Animation view 动画的编辑

Animator Transitions 动画的设置与状态的过渡 Animator Controller 动画控制器的介绍 Animator Scripting 动画控制键的脚本控制

7.Unity 图形处理系统

Unity5.0 着色器系统介绍 Unity5.0 渲染系统介绍

8.粒子系统

Unity 粒子界面以及创建

粒子形状模块以及生命周期速度类模块 Unity 粒子的颜色以及速度控制方法 Unity 粒子的旋转、外部作用力与碰撞

9.UI(UGUI、NGUI)

10.全局光照和局部光照模型的不同:局部光照,主要考虑光源发出的光对物体的直接影响;全局光照除了处理光源发出的光,还考虑其他辅助光的影响,如光线穿过半透明或者透明物体,以及光线重一个物体表面反射到另一个物体表面等。

11.Unity 程序设计

1.恰当的使用单例

2.创建类尽量不要使用或者继承MonoBehavior 3.界面之间传递消息,尽量使用委托来减少依赖 4.尽量控制程序的执行顺序

12.Unity架构,目前没有完美的架构,参考MVC等架构

13.设计模式,单例、观察者等模式

第二篇:Unity3D重要知识点总结

www.xiexiebang.com

Unity3D重要知识点总结

学习Untiy3d过程中,你需要知道数据结构和算法很重,要图形学很重要,大的游戏公司看重个人基础,综合能力小公司就看你实际工作能力,看你的Demo做的如何。那么今天我们来看一下Unity3d学习中的重要知识点有哪些。

1.什么是渲染管道?

是指在显示器上为了显示出图像而经过的一系列必要操作。渲染管道中的很多步骤,都要将几何物体从一个坐标系中变换到另一个坐标系中去。

主要步骤有:

本地坐标->视图坐标->背面裁剪->光照->裁剪->投影->视图变换->光栅化。

2.如何优化内存?

www.xiexiebang.com

有很多种方式,例如

1.压缩自带类库;

2.将暂时不用的以后还需要使用的物体隐藏起来而不是直接Destroy掉;

3.释放AssetBundle占用的资源;

4.降低模型的片面数,降低模型的骨骼数量,降低贴图的大小;

5.使用光照贴图,使用多层次细节(LOD),使用着色器(Shader),使用预设(Prefab)。

3.动态加载资源的方式?

1.Resources.Load();2.AssetBundle 1.通过Resources模块,调用它的load函数:可以直接load并返回某个类型的Object,前提是要把这个资源放在Resource命名的文件夹下,Unity不关有没有场景引用,都会将其全部打入到安装包中。Resources.Load();2.通过bundle的形式:即将资源打成 asset bundle 放在服务器或本地磁盘,然后使用www.xiexiebang.com

3.通过AssetDatabase.loadasset :这种方式只在editor范围内有效,游戏运行时没有这个函数,它通常是在开发中调试用的

【AssetDatabase 资源数据库】

区别:Resources的方式需要把所有资源全部打入安装包,这对游戏的分包发布(微端)和版本升级(patch)是不利的,所以unity推荐的方式是不用它,都用bundle的方式替代,把资源达成几个小的bundle,用哪个就load哪个,这样还能分包发布和patch,但是在开发过程中,不可能没更新一个资源就打一次bundle,所以editor环境下可以使用AssetDatabase来模拟,这通常需要我们封装一个dynamic resource的loader模块,在不同的环境下做不同实现。动态资源的存放有时我需要存放一些自己的文件在磁盘上,例如我想把几个bundle放在初始的安装里,unity有一个streaming asset的概念,用于提供存储接口的访问。我们需要在编辑器建立一个StreamingAssets名字的文件夹,把需要我们放在客户磁盘上的动态文件放在这个文件夹下面,这样安装后,这些文件会放在用户磁盘的指定位置,这个位置可以通过Application.streamingAssetsPath来得到。

4.什么是协同程序?

在主线程运行时同时开启另一段逻辑处理,来协助当前程序的执行。换句话说,开启协程就是开启一个线程。可以用来控制运动、序列以及对象的行为。

5.你用过哪些插件?

www.xiexiebang.com

一 界面制作 推荐:NGUI 二 2D游戏制作 推荐:2D Toolkit /工具包,工具箱

三 可视化编程 推荐:PlayMaker 四 插值插件 推荐:iTween,HOTween 五 路径搜寻 推荐:Simple Path 六 美术及动画制作 推荐:RageSpline,Smooth Moves 七 画面增强 推荐:Bitmap2Material,Strumpy Shader Editor 八 摄像机管理 推荐:Security Camera 九 资源包 推荐:Nature Pack

十、造路插件EasyRoads3D 6.使用Unity3d实现2d游戏,有几种方式?

1.使用本身的GUI;

www.xiexiebang.com

2.把摄像机的Projection(投影)值调为Orthographic(正交投影),不考虑z轴;

3.使用2d插件,如:2DToolKit;

7.Unity3d中的碰撞器和触发器的区别?

触发器只是碰撞器身上的一个属性,碰撞器是触发器的载体。

碰撞器有碰撞的效果,IsTrigger=false,可以调用OnCollisionEnter/Stay/Exit函数;

触发器没有碰撞效果,IsTrigger=true,可以调用OnTriggerEnter/Stay/Exit函数。

a.如果不想让碰撞检测影响物体移动但是又想检测到碰撞这时用到触发器(Trigger)

b.触发器用来检测一个物件是否经过空间中的某个区域

8.物体发生碰撞的必要条件

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

8.1 CharacterController和Rigidbody的区别?

CharacterController自带胶囊碰撞器,里面包含有刚体的属性;

www.xiexiebang.com

Rigidbody就是刚体,使物体带有刚体的特征。

[CharacterController:角色控制器]Rigidbody具有完全真实物理的特性,而CharacterController可以说是受限的Rigidbody,具有一定的物理效果但不是完全真实的

9.在物体发生碰撞的整个过程中,有几个阶段,分别列出对应的函数三个阶段

1.OnCollisionEnter(进入碰撞)2.OnCollisionStay(逗留碰撞)3.OnCollisionExit(当退出碰撞)10.Unity3d的物理引擎中,有几种施加力的方式,分别描述出来

rigidbody.AddForce/AddForceAtPosition,都在rigidbody系列函数中。

11.什么叫做链条关节?

Hinge Joint,可以模拟两个物体间用一根链条连接在一起的情况,能保持两个物体在一个固定距离内部相互移动而不产生作用力,但是达到固定距离后就会产生拉力。

12.物体自身旋转使用的函数?

www.xiexiebang.com

Transform.Rotate()13.物体围绕某点旋转使用的函数?

Transform.RotateAround()14.Unity3d提供了一个用于保存和读取数据的类(PlayerPrefs),请列出保存和读取整形数据的函数

PlayerPrefs.SetInt()PlayerPrefs.GetInt()15.Unity3d提供了几种光源类型,分别是哪几种?

四种。

平行光:Directional Light 点光源:Point Light 聚光灯:Spot Light 区域光源:Area Light

www.xiexiebang.com

16.Unity3d脚本从唤醒到销毁有着一套比较完整的生命周期,请列出系统自带的几个重要的方法。

Awake—>Start—>Update—>FixedUpdate—>LateUpdate—>OnGUI—>Reset—>OnDisable—>OnDestroy 17.物理更新一般放在哪个系统函数里?

FixedUpdate,每固定帧绘制时执行一次,和Update不同的是FixedUpdate是渲染帧执行,如果你的渲染效率低下的时候FixedUpdate调用次数就会跟着下降。FixedUpdate比较适用于物理引擎的计算,因为是跟每帧渲染有关。Update就比较适合做控制。

18.移动摄像机的动作放在哪个系统函数中,为什么放在这个函数中?

LateUpdate,在每帧执行完毕调用,它是在所有Update结束后才调,比较适合用于命令脚本的执行。官网上例子是摄像机的跟随,都是在所有Update操作完才跟进摄像机,不然就有可能出现摄像机已经推进了,但是视角里还未有角色的空帧出现。

19.当游戏中需要频繁创建一个物体时,我们需要怎样做能够节省内存?

使用预制物体对象Prefab,然后复制创建。

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

www.xiexiebang.com

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

21.请描述Prefab的作用,并描述如何在移动设备的环境下恰当的使用它?

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

22.请简述Unity3d下如何安全的在不同工程间迁移asset数据,请列举出三种方法?

1.可以把assets目录和Library目录一起迁移

2.导出包

3.用Unity带的assets Server功能

23.请描述游戏动画有哪几种,以及其原理?

主要有关节动画、骨骼动画、单一网格模型动画(关键帧动画)。

a.关节动画:把角色分成若干独立部分,一个部分对应一个网格模型,部分的动画连接成一 个整体的动画,角色比较灵活,Quake2中使用这种动画;

b.骨骼动画,广泛应用的动画方式,集成了以上两个方式的优点,骨骼按角色特点组成一定的层次结构,有关节相连,可做相对运动,皮肤作为单一网格蒙在骨骼之外,决定角色的外观;

www.xiexiebang.com

c.单一网格模型动画由一个完整的网格模型构成,在动画序列的关键帧里记录各个顶点的原位置及其改变量,然后插值运算实现动画效果,角色动画较真实。

24.请描述为什么Unity3d中会发生在组件上出现数据丢失的情况

一般是组件上绑定的物体对象被删除了

25.alpha blend工作原理

Alpha Blend 实现透明效果,不过只能针对某块区域进行alpha操作,透明度可设。

26.写出光照计算中的diffuse的计算公式

计算公式为: Idiffuse = Dintensity*Dcolor*N.L;(Dintensity表示漫反射强度,Dcolor 表示漫反射光颜色,N 为该点的法向量,L 为光源向量 其中N与L点乘,如果结果小于等于0,则漫反射为0。

27.Lod是什么,优缺点是什么?

www.xiexiebang.com

LOD(Level of detail)多层次细节,是最常用的游戏优化技术。它按照模型的位置和重要程度决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。

28.两种阴影判断的方法、工作原理。

A.阴影由两部分组成:本影与半影

a.本影:景物表面上那些没有被光源直接照射的区域(全黑的轮廓分明的区域)

b.半影:景物表面上那些被某些特定光源直接照射但并非被所有特定光源直接照射的区域(半明半暗区域)

求阴影区域的方法:做两次消隐过程

一次对每个光源进行消隐,求出对于光源而言不可见的区域L;

一次对视点的位置进行消隐,求出对于视点而言可见的面S;

shadow area= L ∩ S B.阴影分为两种:自身阴影和投射阴影

自身阴影:因物体自身的遮挡而使光线照射不到它上面的某些可见面

www.xiexiebang.com

工作原理:利用背面剔除的方法求出,即假设视点在点光源的位置。

投射阴影:因不透明物体遮挡光线使得场景中位于该物体后面的物体或区域受不到光照照射而形成的阴影

工作原理:从光源处向物体的所有可见面投射光线,将这些面投影到场景中得到投影面,再将这些投影面与场景中的其他平面求交得出阴影多边形,保存这些阴影多边形信息,然后再按视点位置对场景进行相应处理得到所要求的视图(利用空间换时间,每次只需依据视点位置进行一次阴影计算即可,省去了一次消隐过程)若是动态光源此方法就无效了。

29.Vertex Shader是什么,怎么计算?

顶点着色器

顶点着色器是一段执行在GPU上的程序,用来取代fixed pipeline中的transformation和lighting,Vertex Shader主要操作顶点。

Vertex Shader对输入顶点完成了从local space到homogeneous space(齐次空间)的变换过程,homogeneous space即projection space的下一个space。在这其间共有world transformation, view transformation和projection transformation及lighting几个过程。

30.MipMap是什么,作用?

www.xiexiebang.com

MipMapping:在三维计算机图形的贴图渲染中有常用的技术,为加快渲染进度和减少图像锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件,这样的贴图被称为MipMap。

31.机试:二选一

1.用代码实现第三角色控制器

2.实现吊机吊物体的功能

【吊机吊物体需要节点挂接和坐标系转换】

32.反向旋转动画的方法是什么?

【反转动画,讲动画的速度调到-1,碰撞时,被碰撞物体与碰撞物体有collider组件,碰撞物体有刚体组件,或角色碰撞得包含角色组件 OR 改变animation.speed】

33.碰撞检测需要物体具备什么属性?

能检测碰撞发生的方式有两种,一种是利用碰撞器,另一种则是利用触发器

【Physics.OverlapSphere相交球检测碰撞,碰撞检测需要包围盒】

34.获取、增加、删除组件的命令分别是什么?

www.xiexiebang.com

获取:GetComponent 增加:AddComponent 删除:Destroy 35.Animation.CrossFade命令作用是:(C)A.动画放大

B.动画转换

C.动画的淡入为其他动画

36.Application.loadLevel命令为:(A)A加载关卡

B.异步加载关卡

C.加载动作

37.调试记录到控制台的命令是什么?

Debug.Log();39.编辑器类存放路径是什么?

工程目录下的Assets/Editor文件夹下。

40.使用原生GUI创建一个可以拖动的窗口命令是什么?

www.xiexiebang.com

GUI.DragWindow();41.localPosition与Position的使用区别?

localPosition:自身位置,相对于父级的变换的位置。、Position:在世界坐标transform的位置

42.写一个计时器工具,从整点开始计时,格式为:00:00:00 43.写出Animation的五个方法

AddClip 添加剪辑、Blend 混合、Play 播放、Stop 停止、Sample 采样

44.怎么拿到一个对象上脚本的方法

GameObject.GetComponent<>();

www.xiexiebang.com

45.请简述向量的点乘,向量的叉乘以及向量归一化的几何意义?

点乘的几何意义是:计算两个向量之间的夹角,以及在某一方向上的投影;

叉乘的几何意义是:创建垂直于平面,三角形,或者多边形的向量;

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

支持:如果同时你要处理很多事情或者与Unity的对象互动小可以用thread,否则使用coroutine.注意:C#中有lock这个关键字,以确保只有一个线程可以在特定时间内访问特定的对象

47.Unity3D中的协程(Coroutine)和C#线程之间的区别是什么?

Unity3d没有多线程的概念,不过unity也给我们提供了StartCoroutine(协同程序)和LoadLevelAsync(异步加载关卡)后台加载场景的方法。StartCoroutine为什么叫协同程序呢,所谓协同,就是当你在StartCoroutine的函数体里处理一段代码时,利用yield语句等待执行结果,这期间不影响主程序的继续执行,可以协同工作。而LoadLevelAsync则允许你在后台加载新资源和场景,所以再利用协同,你就可以前台用loading条或动画提示玩家游戏未卡死,同时后台协同处理加载的事宜asynchronous[e??s??kr?n?s].synchronous同步

www.xiexiebang.com

48.请简述四元数的作用以及四元数相对于欧拉角的优点

A.四元数一般定义如下:q=w+xi+yj+zk其中 w,x,y,z是实数。同时,有: i*i=-1 j*j=-1 k*k=-1 B.四元数也可以表示为: q=[w,v] 有多种方式可表示旋转,如 axis/angle、欧拉角(Euler angles)、矩阵(matrix)、四元组等。相对于其它方法,四元组有其本身的优点:

a.四元数不会有欧拉角存在的 gimbal lock 问题[万向节死锁] b.四元数由4个数组成,旋转矩阵需要9个数

c.两个四元数之间更容易插值

d.四元数、矩阵在多次运算后会积攒误差,需要分别对其做规范化(normalize)和正交化(orthogonalize),对四元数规范化更容易 e.与旋转矩阵类似,两个四元组相乘可表示两次旋转

49.请简述OnBecameVisible及OnBecameInvisible的发生时机,以及他们执行的意义?

当renderer(渲染器)在任何相机上都不可见时调用:OnBecameInvisible

www.xiexiebang.com

当renderer(渲染器)在任何相机上可见时调用:OnBecameVisible 50.动画层(Animation Layers)的作用是什么?

动画层作为一个具有层级动画编辑概念的工具,可以用来制作和处理任何类型的动画

51.请说出4种面向对象的设计原则,并分别简述它们的含义。

1)单一职责原则(The Single Responsiblity Principle,简称SRP):一个类,最好只做一件事,只有一个引起它的变化.2)开放-封闭原则(The Open-Close Principle,简称OCP):对于扩展是开放的,对于更改是封闭的

3)Liskov 替换原则(The Liskov Substitution Principle,简称LSP):子类必须能够替换其基类

4)依赖倒置原则(The Dependency Inversion Pricinple,简称DIP):依赖于抽象

5)接口隔离原则(The Interface Segregation Principle,简称ISP):使用多个小的专门的接口,而不要使用一个大的总接口。

52.Material和Physic Material区别?

www.xiexiebang.com

PhysicMaterial 物理材质:物理材质描述,如何处理物体碰撞(摩擦,弹性)。

Material材质(材质类)为了获得一个对象使用的材质,可以使用 Renderer.materia属性:

53.法线贴图、CG动画

A.法线贴图:是在原物体的凹凸表面的每个点上均作法线,通过RGB颜色通道来标记法线的方向,你可以把它理解成与原凹凸表面平行的另一个不同的表面,但实际上它又只是一个光滑的平面。

B.CG动画:原为Computer Graphics的英文缩写。随着以计算机为主要工具进行视觉设计和生产的一系列相关产业的形成,国际上习惯将利用计算机技术进行视觉设计和生产的领域通称为CG。它既包括技术也包括艺术,几乎囊括了当今电脑时代中所有的视觉艺术创作活动,如平面印刷品的设计、网页设计、三维动画、影视特效、多媒体技术、以计算机辅助设计为主的建筑设计及工业造型设计等。NGUI(NUGUI1、NGUI2)

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

使用Destroy()方法;

55、请描述游戏动画有哪几种,以及其原理。

www.xiexiebang.com

主要有关节动画、单一网格模型动画(关键帧动画)、骨骼动画。

a、关节动画把角色分成若干独立部分,一个部分对应一个网格模型,部分的动画连接成一个整体的动画,角色比较灵活Quake2([kwe?k]vi.发抖,颤抖;)中使用了这种动画;b、单一网络模型动画由一个完整的网格模型构成,在动画序列的关键帧里记录各个顶点的原位置及其改变量,然后插值运算实现动画效果,角色动画较真实。

c、骨骼动画,广泛应用的动画方式,集成了以上两个方式的优点,骨骼按角色特点组成一定的层次结构,由关节相连,可做相对运动,皮肤作为单一网格蒙在骨骼之外,决定角色的外观。皮肤网格每一个顶点都会受到骨骼的影响,从而实现完美的动画

56、下面哪种做法可以打开Unity的Asset Store Windows-> Asset Store

57、Mecanim系统中,Body Mask的作用是?

指定身体的某一部分是否参与渲染

58、以下哪种操作步骤可以打开Unity编辑器的Lightmapping视图?

Windows--> Lightmapping

www.xiexiebang.com

59、关于光照贴图

A:使用光照贴图比使用实时光源渲染要快

B:可以降低游戏内存消耗

C、多个物体可以使用同一张光照贴图

60、关于Vector3的API,以下说法正确的是?

Vector3.forward与Vector3(0,0,1)是一样的意思;

61、什么是导航网格(NavMesh)?

一种用于实现自动寻路的网格

62、什么是局部坐标,什么是世界坐标?

世界坐标是不会变的,一直以世界坐标轴的XYZ为标准。局部坐标其实就是自身的坐标,会随着物体的旋转而变化的。

63、itween插件的作用是什么,itween作用于世界坐标还是局部坐标,请列举出3个其常用方法?

www.xiexiebang.com

iTween是一个动画库,作者创建它的目的就是最小的投入实现最大的产出。让你做开发更轻松,用它可以轻松实现各种动画,晃动,旋转,移动,褪色,上色,控制音频等等“

方法:

a、MoveTo 物体移动 ;

b、ColorTo:随着时间改变对象的颜色组;

c、LookTo:随时间旋转物体让其脸部朝向所提供的Vector3或Transform位置

64、请简述NGUI中Panel和Anchor的作用

Anchor包含UIAnchor脚本。UIAnchor的功能是把对象锚定在屏幕的边缘(左上,左中,左下,上,中,下,右上,右中,右下),或缩放物体使其匹配屏幕的尺寸Panel对象有UIPanel脚本,UIPanel是一个容器,它将包含所有UI小部件,并负责将所包含的部件组合优化、承载,以减少绘制命令的调用。

65、Unity摄像机有几种工作方式,分别是什么?

perspective透视摄像机和orthographic正交摄像机

66、LayerMask.NameToLayer()这个方法有什么作用?

www.xiexiebang.com

LayerMask的使用是按位操作的,LayerMask.NameToLayer(“Players”)返回该Layer的编号。

67、请描述MeshRender中material和shader的区别?

Shader(着色器)实际上就是一小段程序,它负责将输入的Mesh(网格)以指定的方式和输入的贴图或者颜色等组合作用,然后输出。绘图单元可以依据这个输出来将图像绘制到屏幕上。输入的贴图或者颜色等,加上对应的Shader,以及对Shader的特定的参数设置,将这些内容(Shader及输入参数)打包存储在一起,得到的就是一个Material(材质)

Shader大体上可以分为两类: 表面着色器(Surface Shader)、片段着色器(Fragment Shader)

68、什么是矢量图

矢量图:计算机中显示的图形一般可以分为两大类——矢量图和位图。矢量图使用直线和曲线来描述图形,这些图形的元素是一些点、线、矩形、多边形、圆和弧线等等,它们都是通过数学公式计算获得的。例如一幅花的矢量图形实际上是由线段形成外框轮廓,由外框的颜色以及外框所封闭的颜色决定花显示出的颜色。由于矢量图形可通过公式计算获得,所以

www.xiexiebang.com

矢量图形文件体积一般较小。矢量图形最大的优点是无论放大、缩小或旋转等不会失真;最大的缺点是难以表现色。

69.上机题:用鼠标实现在场景中拖动物体,用鼠标滚轮实现缩放(用一个Cube即可)。

70、以下哪个函数在游戏进入新场景后会被马上调用?

MonoBehaviour.OnLevelWasLoaded 71、Unity3D方法执行的顺序:

1、Awake(),2、Start()(激活时的初始化代码)

3、Update()【FixUpdate、LateUpdate】、4、OnGUI(渲染模块)

5、然后是卸载模块(TearDown),这里主要有两个方法OnDisable()与OnDestroy()这里只列出了70个重要的知识点,大家可以参照着去学习,同时也不能忽略其他没有罗列出来的知识,最好就是在项目中不断的锻炼自己,让自己在各方面的能力都不断的提升。

第三篇:Unity3D学习总结

高考完了,上大学(或者大专)这几乎是现在大多数孩子的选择,我就是一个上了一个大专,虽然说是学制三年制,但是在第三年上了两个月之后学校就不讲课了,大家都纷纷走出校门开始找适合自己的工作,但是当我走出校门的时候,才发现我在大学期间几乎是什么也没学到,面试时一问三不知,找不到工作,此时才开始发现大学期间懒懒散散、早上起床起晚了不想去上课就不去了,和同学约好了出去玩也不去上课了,想在宿舍玩游戏就也不去上课了,不去上课,老师也不会多说什么,只会在他点名的时候叫到你的名字,如果你让舍友帮你答到,你会发现什么事情也没有,自此心里会愈发放松,课也是越旷越多,学习更是一点不懂,但是大学不学完全没人管,导致毕业之后还不如上大学之前,上大学之前还会高中知识,上完大学之后连高中知识都不会了,于是不得不参加一个培训班,但你选择一个培训班的时候你又会比较很多,怕培训不出来、怕学不好、怕培训了和没培训一个样子...总之你有很多顾虑。

我经过思考之后加入了我Unity3D培训班(狗刨学习网),因为我发现现在手机游戏迅速崛起,占据了国内很大的市场,因为手机人人都有,人们在坐公交,坐地铁,坐火车等交通工具时都会玩手机,甚至有些人在走路时都会玩,我参加了Unity3D培训班之后才发现,培训班远远比学校好多了,在这里你不会老师会问你那里不会,然后再教给你,不像学校老师就是为了拿工资给你上课,你不去,记你一个旷课也不会对你说什么,在这里还有大家可以讨论问题。

早上九点开始上课期间也有一些休息时间,可是几乎没有人乱走动,都是坐在自己的位置依旧学习,一直到晚上10点以后甚至到12点以后,大家都在拼命的学习,因为大家都知道了这是我们最后的机会,我们已经可以说是一只脚踏出了悬崖,如果我们还不能好好学习的话我们就会掉下悬崖,万劫不复,所以大家都在拼命的学习,只为了将来出人头地,不至于像大学那样上完以后碌碌无为。

所以我现在的心情总结就为自己琢磨的一句话“活着干,死了算,听天由命非好汉,拼命努力向前看。”当然我也想起了我们初中语文老师说的一句比较有文化的话“人生能有几回搏,此时不搏何时搏。”

第四篇:Unity3d面试题总结

本人总结的一些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()

11.Unity3d提供了几种光源类型,分别是哪几种? 四种。

平行光:Directional Light 聚光灯:Spot Light

12.Unity3d脚本从唤醒到销毁有着一套比较完整的生命周期,请列出系统自带的几个重要的方法。

点光源:Point Light 区域光源:Area Light

PlayerPrefs.GetInt()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.反向旋转动画的方法是什么?

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

第五篇:Unity3D【飞机大战项目总结】

Unity3D——飞机大战项目总结

学飞机大战好几天了,今天就总结一下飞机大战所学的知识,所遇到的困难,还有常出现在错误。

一:资源包的导入,场景的搭建步骤不在阐述在这包的导入和创建新文件夹在回顾一下Scences存放场景视图,Scripts存放脚本,Resources存放资源包,资源包下有Textures存放图片,Materials存放材质,Audios存放声音,Madels存放模型。

二:脚本的建立

(1)玩家的飞机的前后左右的移动代码如下:

float x = Input.GetAxis(“Horizontal”);//左右移动 float z = Input.GetAxis(“Vertical”);//前后移动 transform.Translate(-x,0,-z);(2)子弹的不停发射我们采用了鼠标事件用if判断代码如下:

if(Input.GetMouseButtonDown(0)||Input.GetKey(KeyCode.Space))//鼠标左键或空格发射子弹

(3)子弹的个数我们用克隆的方法代码如下:

GameObject u=GameObject.Instantiate(yushe,transform.position,Quaternion.identity)as GameObject;//Instantiate有三个参数一个是所克隆的对象,第二个是所克隆的位置,第三个是位置。

(4)在克隆出子弹时,子弹是静止不动的,我们在给它加个力,有于我这个脚本是挂在子弹预设体上的代码如下:

u.rigidbody.AddForce(0,0,-8000);//有三个参数,一个是X轴的力,一个是Y轴的力,一个是Z轴的力。

(5)敌机的飞行就按傻瓜的来所代码如下:

transform.Translate(new Vector3(0,0,-1));//有三个参数,一个是X轴的飞行,一个是Y轴的飞行,一个是Z轴的飞行。

(6)敌机的子弹发射也是傻瓜类型代码如下: float rocketTime=1;//给敌机所发射的时间

rocketTime-= Time.deltaTime;//时间递减 if(rocketTime<=0){//如果时间小于零为真 rocketTime=1;GameObject

aa=GameObject.Instantiate(EnPeoRo2,transform.position,Quaternion.identity)as GameObject;aa.rigidbody.AddForce(0,0,8000);//给敌机子弹加力

(7)子弹的销毁,脚本添加给玩家子弹的预设体上代码如下:

Destroy(this.gameObject,2);//俩个参数一个是销毁目标,而是几秒后所消失

(8)敌机子弹的消失,脚本添加给敌机脚本代码如下:

Destroy(this.gameObject,2);(9)玩家子弹打到敌机时,敌机消失代码如下 void OnTriggerEnter(Collider aa){//添加触发器

if(aa.tag==“PlayRocket”){//如果玩家的子弹碰到标签为PlayRocket则为真 //Debug.Log(collision.gameObject.name);

Destroy(this.gameObject);//销毁目标

}else if(transform.transform.position.z>=227){//当敌机飞出电脑屏幕敌机自动 } } Destroy(this.gameObject);销毁

(10)当敌机子弹打到玩家飞机时则玩家飞机生命减少,若干次销毁代码如下;void OnTriggerEnter(Collider aa){

}

if(aa.tag==“EnenmyRocket”){//打到一次

} i--;//生命建少一次 if(i==0){//当减为零时为真 Destroy(this.gameObject);}//销毁目标

具体代码如下:

玩家飞机代码public class PlayerPlan : MonoBehaviour {

public GameObject yushe;int i=2;// Use this for initialization void Start(){ }

// Update is called once per frame void Update(){

float x = Input.GetAxis(“Horizontal”);float z = Input.GetAxis(“Vertical”);transform.Translate(-x,0,-z);if(Input.GetMouseButtonDown(0)||Input.GetKey(KeyCode.Space)){ GameObject

u=GameObject.Instantiate(yushe,transform.position,Quaternion.identity)as GameObject;

} void OnTriggerEnter(Collider aa){

}

if(aa.tag==“EnenmyRocket”){

} i--;if(i==0){ Destroy(this.gameObject);} } u.rigidbody.AddForce(0,0,-8000);}

玩家子弹代码如下: using UnityEngine;using System.Collections;

public class PlayRicket : MonoBehaviour {

} 敌机子弹代码: using UnityEngine;using System.Collections;

public class EnProRock2 : MonoBehaviour {

public GameObject EnPeoRo2;float rocketTime=1;// Use this for initialization void Start(){ }

// Update is called once per frame void Update(){

} //this.gameObject.rigidbody.AddForce(Vector3.back);Destroy(this.gameObject,2);// Use this for initialization void Start(){ }

// Update is called once per frame void Update(){

rocketTime-= Time.deltaTime;if(rocketTime<=0){ rocketTime=1;GameObject

aa=GameObject.Instantiate(EnPeoRo2,transform.position,Quaternion.identity)as GameObject;

} } aa.rigidbody.AddForce(0,0,8000);} 敌机代码如下: using UnityEngine;using System.Collections;

public class EnenmyPeople2 : MonoBehaviour {

}

if(aa.tag==“PlayRocket”){

} } // Use this for initialization void Start(){ }

// Update is called once per frame void Update(){ } void OnTriggerEnter(Collider aa){ transform.Translate(new Vector3(0,0,-1));//Debug.Log(collision.gameObject.name);

Destroy(this.gameObject);}else if(transform.transform.position.z>=227){ Destroy(this.gameObject);//想了解更多到狗刨学习网

下载unity3D学习知识点总结(优秀范文5篇)word格式文档
下载unity3D学习知识点总结(优秀范文5篇).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    对Unity3D一周所学总结(定稿)

    对Unity3D一周所学的总结 一、Transform 游戏对象的Transform属性可以进行位置、旋转、大小的设置。属性: 1、 transform.position在世界空间坐标transform的位置 如:trans......

    unity3d java script 脚本学习笔记

    unity3d java script 脚本学习笔记 1.整体语法遵循java语法格式,结构像C,不像PY需要格式要求。 基本要求:1.函数、判断、循环都需要用大括号{}包括起来 2.每行语句结束需要用分号......

    初一英语学习知识点总结

    初一英语学习知识点总结 一、初一英语语法——词法 1、名词 A)名词的数我们知道名词可以分为可数名词和不可数名词,而不可数名词它没有复数形式,但可数名词却有单数和复数之分,......

    Java基础学习知识点总结

    黑马程序员_毕向东_Java基础视频教程 Java基础学习知识点总结 2016年01月06日day01 一、基础知识:软件开发 1、什么是软件?软件:一系列按照特定顺序组织的计算机数据和指令的集......

    初一英语语法学习知识点总结

    初一英语语法虽然是从简单的一些日常用语出发的,但语法中常会有一些知识点看起来很细小,容易被忽视,但这些知识点掌握不熟练,往往会造成一些语法应用上的错误。因此在学习初一英......

    三年级知识点总结(优秀范文五篇)

    第一单元 时 分 秒 1、钟面上有3根针,它们是(时针)、(分针)、(秒针),其中走得最快的是(秒针),走得最慢的是(时针)。(时针最短,秒针最长) 2、钟面上有(12)个数字,(12)个大格,(60)个小格;每两个数......

    Excel知识点总结(优秀范文五篇)

    第一部分 知识点小结 一、启动与退出EXCEL 启动:双击桌面的快捷图标; “开始→运行”命令,输入excel 退出:ALT+F4 二、EXCEL窗口组成 1、工作簿:就是EXCEL文件,如建立一个文件就......

    赤壁赋知识点总结[优秀范文五篇]

    《赤壁赋》知识点总结 一、通假字 1、浩浩乎如冯虚御风通“凭”,乘 2、山川相缪 通“缭”,盘绕,缠绕 3、曾不能以一瞬 痛“已”,停止 二、古今异义 1、白露横江,水光接天 古:白......