GDPU unity游戏开发 序幕

"我游戏都玩不明白,还让我做游戏o(≧口≦)o"还在为课程烦恼,本文重点在于,一学期摸鱼必过指南。持续更新中,没更完会有点乱哈。

小题

课本课后习题答案

第一章

|---|---|---|------|-----|----|-----|---|---|----|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| A | D | A | ABCD | ABD | AB | BCD | B | C | B |

第二章

|---|---|---|---|---|---|---|---|------|------|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| C | C | B | B | C | A | C | D | ABCD | ABCD |

第三章

|---|---|-----|-----|---|---|-----|------|------|----|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| D | D | ABD | ABC | B | C | ABC | ABCD | ABCD | AB |

第四章

|---|---|---|------|-----|------|----|------|-----|----|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| C | B | C | ABCD | ACD | ABCD | CD | ABCD | ABC | B |

第五章

|---|---|------|---|-----|------|------|---|---|----|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| C | A | ABCD | B | ABC | ABCD | ABCD | D | A | C |

第六章

|---|---|---|------|---|-----|----|-----|----|------|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| A | C | C | ABCD | B | ABC | AB | ABC | AB | ABCD |

第七章

|------|---|------|-----|------|---|---|---|---|----|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| ABCD | D | ABCD | ABC | ABCD | | | | | |

第八章

|------|----|-----|-----|----|---|---|---|---|----|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| ABCD | AB | ABC | ABC | CD | | | | | |

简答题

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

碰撞器是触发器的载体,而触发器只是碰撞器身上的一个属性。碰撞器物体不能互相进入到对方内部,触发器可以。

当Is Trigger=false时,碰撞器根据物理引擎引发碰撞,产生碰撞的效果,可以调用OnCollisionEnter/Stay/Exit函数;

当Is Trigger=true时,碰撞器被物理引擎所忽略,没有碰撞效果,可以调用OnTriggerEnter/Stay/Exit函数。

如果既要检测到物体的接触又不想让碰撞检测影响物体移动或要检测一个物件是否经过空间中的某个区域这时就可以用到触发器。

Unity中碰撞发生的条件:

两个物体必须都包含碰撞体组件,至少一个物体上添加Rigidbody刚体组件,而且必须是运动的物体带有rigidbody脚本才能检测到碰撞。

CharacterController和Rigidbody的区别

Rigidbody具有完全真实物理的特性,Unity中物理系统最基本的一个组件,包含了常用的物理特性,而CharacterController可以说是受限的的Rigidbody,具有一定的物理效果但不是完全真实的,是Unity为了使开发者能方便的开发第一人称视角的游戏而封装的一个组件

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

答:1.不美观

2.OnGUI很耗费时间

3.使用不方便

  1. drawcall很高

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

答:MeshCollider是网格碰撞器,对于复杂网状模型上的碰撞检测,比其他的碰撞检测精确的多,但是相对其他的碰撞检测计算也增多了,所以一般使用网格碰撞也不会在面数比较高的模型上添加,而会做出两个模型,一个超简模能表示物体的形状用于做碰撞检测,一个用于显示。

写出Animation的五个方法

答:AddClip 添加剪辑、Blend 混合、Play 播放、Stop 停止、Sample 采样 、CrossFade淡入淡出切换动画、IsPlaying是否正在播放某个动画

21.四元数是什么?主要作用什么?对欧拉角的优点是什么?

答:所谓四元数,就是把4个实数组合起来的东西。4个元素中,一个是实部,其余3个是虚部

作用:四元数用于表示旋转

优点:

1)能进行增量旋转

2)避免万向锁

3)给定方位的表达方式有两种,互为负

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

答:Prefab是预制物,一般当游戏中需要频繁创建一个物体时,使用预制物可以节省内存,方便创建,方便对游戏物体进行操作,方便对属性进行修改

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

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

26.MeshRender中material和shader的区别?

答:MeshRender是模型渲染的组件,有此组件物体才能显示出来

Material是材质球,实际就是shader的实例,并进行赋值,贴图、纹理、颜色等。

Shader是着色器,实际上是一段程序,还可以用来实现一些仅靠贴图不容易实现的效果,如玻璃。

Shader大致分为:

1.表面着色器

2.顶点和片元着色器

3.固定功能着色器

光照贴图 的优势是什么?

答:1.使用光照贴图比使用实时光源渲染要快

2.可以降低游戏内存消耗

3.多个物体可以使用同一张光照贴图

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

答:Awake -->OnEnable->Start

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

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

答:Awake------>Start------>Update------>FixedUpdate------>LateUpdate------>OnGUI------>Reset------>OnDisable------>OnDestroy

动态加载资源的方式?区别是什么?

答:1.Resources.Load();

2.AssetBundle

区别:

Resources是动态内部调用,Resources在编辑环境下是project窗口的一个文件夹,调用里面的资源,可以用Resources类,比如Resources.Load,打包后这个文件夹是不存在的,会统一生成assets资源,AssetBundle 是外部调用,要用AssetBundle 首先要先把资源打包为.assetbundle文件,再动态的去加载这个文件,本地或者网络服务器都可以。

简单说,Resources资源的加载是动态加载内部的,AssetBundle 是动态加载外部的

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

使用Destroy()方法;

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

答:获取:GetComponent

增加:AddComponent

没有删除组件只有让组件不生效:enable

localPosition与Position的使用区别?

答:localPosition:自身位置,相对于父级的变换的位置,局部坐标其实就是自身的坐标,会随着物体的旋转而变化的。

Position:在世界坐标transform的位置,世界坐标是不会变的,一直以世界坐标轴的XYZ为标准。

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

答:Transform.Rotate()

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

答:Transform 父类是 Component

Unity3d的物理引擎中,有几种施加力的方式,分别描述出来

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

什么叫做链条关节?

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

什么是导航网格( NavMesh)?

答: Unity内一种用于实现自动寻路的网格

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

答:四种。

平行光:Directional Light

点光源:Point Light

聚光灯:Spot Light

区域光源:Area Light

什么是协同程序?

在主线程运行的同时开启另一段逻辑处理,来协助当前程序的执行,协程很像多线程,但是不是多线程,Unity的协程实在每帧结束之后去检测yield的条件是否满足。

MeshRender中material和sharedmaterial的区别?

修改sharedMaterial将改变所有物体使用这个材质的外观,并且也改变储存在工程里的材质设置。不推荐修改由sharedMaterial返回的材质。如果你想修改渲染器的材质,使用material替代。

使用Unity3d实现2d游戏,有几种方式?

1.使用本身的GUI,在Unity4.6以后出现的UGUI

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

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

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

三个阶段,1.OnCollisionEnter 2.OnCollisionStay 3.OnCollisionExit

C#的委托是什么?有何用处?

委托类似于一种安全的指针引用,在使用它时是当做类来看待而不是一个方法,相当于对一组方法的列表的引用。用处:使用委托使程序员可以将方法引用封装在委托对象内。然后可以将该委托对象传递给可调用所引用方法的代码,而不必在编译时知道将调用哪个方法。与C或C++中的函数指针不同,委托是面向对象,而且是类型安全的。

射线检测碰撞物的原理是?

射线是3D世界中一个点向一个方向发射的一条无终点的线,在发射轨迹中与其他物体发生碰撞时,它将停止发射 。

四元数有什么作用?

对旋转角度进行计算时用到四元数

将Camera组件的ClearFlags选项选成Depth only是什么意思?有何用处?

如果把摄像机的ClearFlags勾选为Deapth Only,那么摄像机就会只渲染看得见的对象,把背景会完全透明,这种情况一般用在两个摄像机以上的场景中

在编辑场景时将GameObject设置为Static有何作用?

设置游戏对象为Static时,这些部分被静态物体挡住而不可见时,将会剔除(或禁用)网格对象。因此,在你的场景中的所有不会动的物体都应该标记为Static。

问一个Terrain,分别贴3张,4张,5张地表贴图,渲染速度有什么区别?为什么?

没有区别,因为不管几张贴图只渲染一次。

相关推荐
小吴同学·5 小时前
.NET6 WebApi第1讲:VSCode开发.NET项目、区别.NET5框架【两个框架启动流程详解】
c#·.netcore·.net core
虾球xz9 小时前
游戏引擎学习第20天
前端·学习·游戏引擎
bluefox197910 小时前
使用 Oracle.DataAccess.Client 驱动 和 OleDB 调用Oracle 函数的区别
开发语言·c#
鲤籽鲲12 小时前
C# MethodTimer.Fody 使用详解
开发语言·c#·mfc
工业3D_大熊12 小时前
3D可视化引擎HOOPS Luminate场景图详解:形状的创建、销毁与管理
java·c++·3d·docker·c#·制造·数据可视化
yngsqq12 小时前
c#使用高版本8.0步骤
java·前端·c#
red_redemption14 小时前
自由学习记录(23)
学习·unity·lua·ab包
hccee15 小时前
C# IO文件操作
开发语言·c#
广煜永不挂科17 小时前
Devexpress.Dashboard的调用二义性
c#·express
/**书香门第*/17 小时前
Cocos creator 3.8 支持的动画 7
学习·游戏·游戏引擎·游戏程序·cocos2d