unity 面试题 渲染管道步骤及优化内存方法:从坐标系变换到资源加载

unity 面试题 渲染管道步骤及优化内存方法:从坐标系变换到资源加载

渲染管道中的许多步骤都涉及将几何对象从一种坐标系转换到另一种坐标系。

主要步骤是:

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

二。如何优化内存?

方法有很多,比如

1、压缩内置类库;

2、隐藏暂时不用的、以后需要用到的对象,而不是直接销毁;

3、释放AssetBundle占用的资源;

4.减少模型的边数,减少模型中的骨骼数量,减小纹理的尺寸;

5、使用光照贴图、使用多层次细节(LOD)、使用着色器(Shader)、使用预制件(Prefab)。

3、如何动态加载资源? (有时我们也会问区别,具体请参考百度)

1.Resources.Load();

2.资产包

四:什么是协程?主线程运行的同时,又启动另一段逻辑处理来辅助当前程序的执行。协程与多线程非常相似,但它不是多线程。 Unity的协程会在每一帧结束后检测是否满足yield条件。

五: 中的collider和trigger有什么区别?

碰撞体是触发器的载体,触发器只是碰撞体的一个属性。当Is Trigger=false时,碰撞器根据物理引擎触发碰撞,产生碰撞效果。可以调用OnCollisionEnter/Stay/Exit函数;当Is Trigger=true时,碰撞体被物理引擎忽略,没有碰撞效果。您可以调用OnTriggerEnter/Stay/Exit函数。如果想要检测物体的接触但又不想碰撞检测影响物体的移动,或者想要检测物体是否经过空间中的某个区域,可以使用触发器六:什么物体发生碰撞的必要条件是什么?两个物体都必须有一个碰撞体(Collider),其中一个物体还必须有一个Rigidbody,移动的物体必须有一个Rigidbody脚本来检测碰撞。七:请简单描述一下ArrayList和List的主要区别?

####ArrayList 具有不安全类型(ArrayList 会将插入其中的所有数据视为对象)?装箱和拆箱操作(耗时)? List是一个接口,ArrayList是实现这个接口的类。你可以被实例化

八:如何在不同项目之间安全迁移资产数据?三种方法 1.将Assets目录和Library目录一起迁移 2.导出包,导出Package

3.使用unity自带的assets Server功能

9:运行时OnEnable、Awake、Start发生的顺序是什么?在同一个对象循环中可能会重复出现

Awake –>OnEnable->Start,OnEnable可以在同一个周期内重复发生。 10:MeshRender中材质和共享材质有什么区别?修改sharedMaterial将更改使用该材质的所有对象的外观,并且还将更改存储在项目中的材质设置。不建议修改sharedMaterial返回的材质。如果要修改渲染器的材质,请改用材质。 11:Unity提供了多种光源。有哪四种类型?平行光:Directional Light 点光源:Point Light 聚光灯:Spot Light 区域光源:Area Light 十二:简单描述一下对象池。你认为FPS中的对象池适合什么用途?对象池存储需要重复调​​用的资源。空间。当一个对象大量生成时,每次销毁和创建都会非常耗时。通过对象池将暂时不用的对象放入池(即集合)中,然后重新生成对象。首先去池中检查是否有可用的对象。如果有则直接使用,无需创建。如果池中没有可用的对象,则只需重新创建它们。以空间换时间,实现游戏的高速运行。效果,FPS游戏中经常大量复制的物体包括子弹、敌人、粒子等。 13:CharacterController和Rigidbody的区别 Rigidbody具有完全真实的物理特性。它是Unity中物理系统最基本的组成部分,包含了常用的物理特性,而CharacterController可以说是一个受限制的Rigidbody,具有一定的物理效果但并不完全真实。它是Unity封装的一个组件,可以让开发者轻松开发第一人称视角游戏。十四:简要说明 prefab 的目的是在游戏运行时实例化。 Prefab相当于一个模板。它对您已有的材质、脚本和参数进行默认配置,以方便将来的修改。同时,预制件打包的内容简化了导出操作,方便Team沟通。

15:请简要描述sealed关键字在类声明和函数声明中使用时的作用。由sealed修饰的类是密封类。当类被声明时,可以防止其他类继承这个类。在方法中声明它可以防止派生类被重写。这个方法。 16:请简单描述一下private、public、protected、internal之间的区别 public:对任何类和成员都是public,无限制访问 private:仅对本类公开 protected:对本类及其派生类公开 public:仅在该类及其派生类中可用包含该类的程序集访问该类十七:使用Unity3d实现2D游戏有多少种方法? 1、使用自己的GUI,即Unity 4.6之后出现的UGUI。 2.将相机的Projection值调整为Orthographic(正交投影),与z轴无关; 3.使用2d插件,如:2DToolKit、NGUI。十八:在物体碰撞的整个过程中unity 面试题,有几个阶段。分别列出三个阶段对应的函数, 1.OnCollisionEnter 2.OnCollisionStay 3.OnCollisionExit 十九:在Unity3d的物理引擎中,有几种应用力的方法,分别在rigidbody.AddForce/AddForceAtPosition中描述,这些方法都在rigidbody中系列功能。

大家可以自己查看一下rigidbody的API 20:什么是链关节?铰链关节可以模拟两个物体用链条连接在一起的情况。它可以使两个物体在固定距离内相互移动而不产生任何力,但达到固定距离后会产生拉力。二十一:用什么函数来旋转物体本身? Transform.Rotate() 22:Unity3d提供了一个类(PlayerPrefs)用于保存和读取数据。请列出保存和读取整形数据的函数 PlayerPrefs.SetInt() PlayerPrefs.GetInt() 23:Unity3d脚本从唤醒到销毁有一个比较完整的生命周期。请列出系统自带的几个重要方法。 Awake——>OnEnable——>Start——>Update——>FixedUpdate——>LateUpdate——>OnGUI——>OnDisable——>OnDestroy 二十四:物理更新一般放在哪个系统函数中?每绘制一个固定帧就会执行一次FixedUpdate。与Update不同的是,FixedUpdate是在渲染帧执行的。如果你的渲染效率较低,FixedUpdate 调用次数也会相应减少。 FixUpdate更适合物理引擎计算,因为它与每一帧的渲染相关。

更新更适合控制。二十五:如果场景中放置多个Camera并且同时处于活动状态,会发生什么情况?游戏界面可以看到很多摄像头的混合体。二十六:如何销毁一个UnityEngine.Object及其子类?使用 Destroy() 方法;二十七:请描述Unity3d中组件出现数据丢失的原因。一般是删除组件绑定的对象。二十八:什么是LOD,它的优点和缺点是什么? LOD(细节级别)是最常用的游戏优化技术。它根据模型的位置和重要性来决定对象渲染的资源分配,减少不重要对象的面数和细节,从而实现高效的渲染操作。缺点是增加了内存。二十九:什么​​是MipMap,它有什么作用? MipMapping:三维计算机图形纹理渲染中常用的技术。为了加速渲染过程并减少图像锯齿,纹理被处理成由一系列预先计算和优化的图片组成的文件。这样的纹理称为 MipMap。 。三十:请描述接口和抽象类的区别。抽象类是指类中可能有一些方法的具体定义,但接口是公公只能定义各个方法的接口,具体的实现代码不能在成员方法中。类由子类继承。当父类已经有具有实际功能的方法时,子类中不需要实现该方法。而是直接引用父类的方法。子类也可以重写父类的方法。

实现接口时,必须实现接口中的所有方法,一个都不能漏掉。三十一:.Net和Mono是什么关系? Mono是.net的一个开源跨平台工具,类似于Java虚拟机。 Java本身并不是跨平台的语言,但是运行在虚拟机上可以实现跨平台。 .net只能运行在Windows下,而mono可以跨平台运行,可以运行在Linux、Unix、Mac OS等上。 三十二:简述Unity3D支持的脚本语言名称。 Unity的脚本语言运行在Mono的.Net平台上,可以使用.NET库,这也为XML、数据库、正则表达式等问题提供了很好的解决方案。解决方案。 Unity 中的脚本经过编译并且运行速度非常快。这三种语言的实际功能和运行速度是相同的,差异主要体现在语言特性上。 JavaScript、C#、Boo 三十三:U3D中用于记录节点空间几何信息的组件名称,其父类名称Transform。父类是组件三十四:向量点积、叉积、归一化是什么意思? 1.点积描述了两个向量的相似度。结果越大,两个向量越相似。也可以表示投影2。叉积得到的向量垂直于原来的两个向量。 3.标准化向量:仅用于关联方向。当您不关心大小时 第三十五:为什么每个人都在移动设备上寻找 U3D 原生 GUI 的替代品?不美观,OnGUI耗时硬件设备,效率低,使用不方便 三十六:请简述如何显示不同分辨率 NGUI通过保持UI的一致性很好的解决了这个问题。屏幕分辨率适配的原理是计算屏幕的长宽比和原来预设的屏幕分辨率找到一个比较值,然后修改相机。尺寸。

UGUI也通过锚点、中心点和分辨率解决了这个问题。三十七:什么是LightMap? LightMap:是指在3D软件中实现光照,然后将场景各个表面的光照渲染输出到贴图上,最后通过引擎粘贴到场景上,使物体有光照的感觉。三十八:Unity和cocos2d的区别 1.Unity3D支持C#、javascript等,而cocos2d-x支持c++、Html5、Lua等 2.cocos2d开源免费 3.Unity3D支持iOS上的游戏开发、Android、Flash、Windows、Mac、Wii等平台,而cocos2d-x支持iOS、Android、WP等。 三十九:C#和C++有什么区别?简单来说:当比较C#和C++时,最重要的特点是C#是一种完全面向对象的语言,而C++则不是。此外,C#基于IL中间语言和.NET Framework CLR。在可移植性和可维护性方面,无论是性能还是健壮性都比C++有很大的提高。 C#的设计目标是开发快速、稳定和可扩展的应用程序。当然,一些底层操作也可以通过Interop和Pinvoke来完成。对于更详细的区别,你可以问:结构体和类有什么区别?结构体是值类型,而类是引用类型。

(根据数据存储的角度来划分值类型和引用类型)值类型用于存储数据的值,引用类型用于存储对实际数据的引用。然后将该结构用作值,类通过引用对实际数据进行操作。 41: 什么是ref参数和out参数?有什么区别? ref 和 out 参数具有相同的效果。他们使用关键字查找主函数中定义的变量的内存地址,并通过方法体中的语法更改其大小。不同的是输出参数必须初始化参数。 ref 必须被初始化,并且 out 参数必须在函数中被赋值。 ref 参数是引用,out 参数是输出参数。四十二:C#的委托是什么?有什么用呢?委托类似于安全指针引用。使用时,将其视为类而不是方法,相当于对方法列表的引用。有用性:使用委托允许程序员将方法引用封装在委托对象中。然后,可以将该委托对象传递给可以调用引用方法的代码,而无需在编译时知道将调用哪个方法。与 C 或 C++ 中的函数指针不同,委托是面向对象且类型安全的。 43:C#中的排序方法有哪些?选择排序、冒泡排序、快速排序、插入排序、希尔排序、归并排序 44:碰撞物体射线检测的原理是什么?光线是从 3D 世界中的一点向一个方向发射的一条无尽的线。当它与发射轨迹中的其他物体碰撞时,它将停止发射。四十五:Unity中游戏策划,相机的Clipping Planes的作用是什么?调整Near和Fare值时需要注意什么?剪裁平面。开始渲染和停止渲染时距相机的距离。四十六:如何防止现有的GameObject在LoadLevel后被卸载?

功能:yield 语句可以在协程执行过程中的任何地方使用。 Yield 的返回值控制协程何时恢复向下执行。协程非常擅长执行对象自己的框架。协程没有进一步的性能开销。缺点:协程不是真正的线程,可能会被阻塞。七十七:什么是里克特替代原理? Liskov替换原理LSP是面向对象设计的基本原理之一。通俗点:子类对象可以赋值给基类对象,但基类对象不能赋值给子类对象。 78:Mock和Stub有什么区别? Mock 和 Stub 的区别: Mock:侧重于行为验证。细粒度测试,即代码的逻辑,大多数情况下用于单元测试。存根:专注于状态验证。粗粒度测试用于依赖系统不存在或尚未实现或难以测试的情况,例如访问文件系统、数据库连接、远程协议等。 七十九:序列化概述:简单理解序列化将对象转换为易于传输的格式的过程。例如,您可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。八十:堆和栈有什么区别?堆栈通常保存我们代码执行的步骤,比如代码段1中的AddFive()方法,int pValue变量,int result变量等。

堆上存储的主要是对象、数据等。我们可以将堆栈视为一个叠放在另一个顶部的盒子。当我们使用它时,我们一次从顶部取出一个盒子。对于栈也是同样的道理。当一个方法(或类型)被调用并完成时,它会从堆栈顶部取出并移至下一个。堆不同。它就像一个仓库,存储我们使用的各种对象和其他信息。与堆栈不同,它们在被调用后不会立即被清除。八十一:c#中代理和事件概述?代理用于定义对方法的引用。 C#事件的本质是消息的封装,用于对象之间的通信;发送者称为事件发送者,接收者称为事件接收者。 82:客户端和服务器有几种交互方式? Socket,俗称“套接字”,实现服务器与客户端之间的物理连接,并进行数据传输。主要有两种协议:UDP 和 TCP。 Socket位于网络协议的传输层。 http协议传输主要包括http协议和基于http协议的Soap协议(Web服务)。常见的方法有http post和get请求,以及Web服务。八十三:Unity、Android、iOS如何交互? Unity可以访问Android和iOS项目,然后通过Android或iOS类向Unity发送消息并调用Unity中的方法84:如何在Unity3D中查看场景的访谈、顶点数和绘制调用数?如何减少Draw Call的次数?单击游戏视图右上角的统计信息。

减少Draw Call的技术就是Draw Call Batching。这是5.0以后window-》Profiler下的。快捷键是cmd+7(ctl+785:什么时候使用alpha测试?可以达到什么效果?Alpha Test,中文就是透明度测试。简单来说,就是最后一个片段函数输出的颜色值的alpha值V&F 着色器(即上一课中的 frag 的输出 half4)与固定值进行比较 AlphaTest 语句通常位于 Pass{} 位置,Alpha Test 产生的效果也非常极端。完全透明,也就是不可见,或者说完全不透明。 八十六:UNITY3d在移动设备上优化资源的一些方法 1、利用assetbundle实现资源分离和共享,将内存控制在200m以内,还可以实现在线。资源的更新 2. 顶点数是CPU和GPU渲染压力最大的因素 通过将顶点数减少到8万以下,fps稳定在30帧左右 3. 只使用。一种动态灯光,没有阴影,也没有灯光探头。粒子系统是CPU上的一个大头。 4. 修剪粒子系统。 5. 合并同时出现的粒子系统。 6. 实现您自己的轻量级粒子系统动画器。一个效率极差的地方。 7. 所有不需要过渡到骨骼动画和运动的区域都使用动画,并将骨骼数量控制在30个以下。 8. 动画师在视图之外并且不更新。 9.删除无意义的动画师。 10.动画师的初始化非常耗时。 (可以尽量不要在粒子上使用animator吗?) 11.除了主角之外,不要对骨骼应用根运动。 12、绝对禁止没有刚体和边界框的物体的运动(静态碰撞器)。 NUGI的代码效率很差,基本上运行时对CPU的贡献和render差不多。 13 每帧finalalpha的递归计算改为仅在初始化和更改时计算。 14 删除正常计算。 15 不要计算每一帧的视图大小和窗口大小。当填充drawcall时构建顶点缓存时unity 面试题,使用array.copy17。代码剪辑:使用条带级别,使用.net2.0的subset18。最小化平滑组19。为艺术设定严格的经过科学验证的艺术标准,并在U3D 87中为其配备相应的检验工具:什么是四元数?计算旋转角度时四元数八十八有什么用? Camera组件的ClearFlags选项仅选择Depth是什么意思?如果相机的ClearFlags勾选为Deepth Only,相机将只渲染可见物体,背景将完全透明。这种情况一般用于两个以上摄像头的场景。 89:编辑场景时将GameObject设置为Static有什么作用?将游戏对象设置为“静态”时,当这些部分被静态对象遮挡且不可见时,网格对象将被剔除(或禁用)。

因此,场景中所有不可移动的对象都应标记为“静态”。九十:有两组对象,A和B,有什么办法可以保证A组中的对象总是先于B组中的对象渲染?使A组对象的渲染队列大于B对象的渲染队列,并通过着色器中的渲染队列进行渲染九十一:将图像的TextureType选项分别选择为“Texture”和“Sprite”。什么是Sprite作为UI sprite的区别? 使用Texture函数模型贴图需要2次方。 打包图片节省资源 问题:如果贴3、4、5个曲面贴图,渲染速度有什么区别。地形?不同的是,无论绘制多少张地图,都只渲染一次 93:什么是DrawCall?在Unity中,准备数据并通知GPU的过程称为Draw。 Call.越高,对显卡的消耗就越大。 减少DrawCall的方法:1.Dynamic Batching2.Static Batching3.将高级特征Shader降级为统一的低级特征Shader有什么优点和缺点。实时点光源? cookies – 带有 Alpha 通道的立方体贴图纹理。

点光源是资源最密集的。九十五:Unity的Shader中,Blend SrcAlpha OneMinusSrcAlpha这句话是什么意思?功能是Alpha混合。公式:最终颜色 = 源颜色 使用着色器,您可以通过 GPU 扰动像素级别。效果细腻,需要的顶点少,速度快。九十七:简述NGUI中Grid和Table的作用? Grid和Table下子对象的排序和定位 98:请简单描述一下NGUI 1中Panel和Anchor的功能。只要提供半像素的偏移,就可以使控件在Windows系统上显示的位置精确(只有这个Anchor的子控件会受到影响) 2.如果挂载到一个对象上,那么他可以将该对象附加到屏幕的角落或边缘 3.UIPanel用于收集和管理其组件下面的所有widget。通过小部件的几何形状创建实际的绘制调用。没有面板就无法渲染任何东西。您可以使用 UIPanel 作为渲染器。九十九:可以使用foreach遍历访问的对象需要实现_interface或者声明____方法IEnumerable的类型; GetEnumerator 第 2 部分 1. 以下哪一项不属于 Unity 引擎支持的视频格式文件(D) A. 后缀为 mov 的文件 B. 后缀为 mpg 的文件 C. 后缀为 avi 的文件 D.后缀为 swf 的文件 2. Unity 引擎使用左手坐标系或右手坐标系(A) A. 左手坐标系 B. 右手坐标系 C. 可以切换右手坐标系通过ProjectSetting D.可以通过参考3.什么是导航网格(NavMesh)(B)A.用于描述相机轨迹的网格B.用于实现自动寻址的网格C.一个优化的左手坐标系对象网格 D. 用于物理碰撞的网格 4. 以下关于 Animator 的哪些描述是不正确的? (D) A. Animator 是 Unity 引擎中的内置组件。 B. 任何具有动画状态机功能的 GameObject 都需要 Anim 组件。 C. 主要用于角色行为设置,包括StateMachine、BlendTrees、脚本等。受控事件 D.Animator和Animation组件的用法是一样的。 5. Application.loadLevel 命令为 (A) A. 加载关卡 B. 异步加载关卡 C. 加载动作 D. 加载动画 6. 以下选项中,关于 Transform 组件 Scale 参数的正确描述为 (A) A。Transform 组件的 Scale 参数不会影响 ParticleSystem 生成的粒子的大小。 B. Transform 组件的 Scale 参数不会影响 GUITexture 的大小。 C. GameoObject 添加 Collider 组件后,其 Collider 组件的大小不受 Transform 组件的 Scale 参数影响。 D、添加Rigidbody组件后物体的大小将不再受Transform组件的Scale参数影响。 7、在Unity中创建场景中的Camera时,默认情况下,除了Transform、Camera、GUILayer、Flare Layer组件外,还包括以下哪个组件(C) A.Mouse Look B.FPS Input Controller C .音频监听器D.字符电机8.如果将声音剪辑文件从 Project 视图拖到 Inspector 视图或 Scene 视图中的游戏对象中,以下哪个组件将自动添加到游戏对象中 (C) A.Audio Listener B.Audio Clip C.音频源 D.Audio Reverb Zone9。以下描述中关于 Prefab 的说法错误的是(B) A. Prefab 是一种资源类型 B. Prefab 是可以重复使用的游戏对象 C. Prefab 可以在场景中多次实例化 D. 当Prefab被添加到场景中,它也只是创建它的一个实例。 10、MonoBehaviour.LateUpdate函数的错误描述是:(B) A. 当MonoBehaviour类启用时,每帧调用一次 B. 它经常被用来处理Rigidbody更新 C. 在所有Update中它只能是函数执行后调用。 D、常用于实现跟随相机的效果,在Update函数中已经更新了目标物体的位置。 11.下列哪个函数不属于碰撞事件(C) A.OnCollisionEnter B.OnCollisionExit C.OnCollisionUpdate D.OnCollisionStay12.以下关于 MonoBehaviour.OnGUI() 的描述是错误的(D) A. 如果不启用 MonoBehaviour,则不会调用 OnGUI 函数 B. 用于绘制和处理 GUI 事件 C. 每个帧可能会被绘制多次,每次对应GUI事件D的时间 D.每帧调用一次 13.下面哪组相机中,Normalized View Port Rect的数值设置可以使相机显示的图像位于画面的右上角分辨率为1280*720(D)的屏幕 AX =640,Y=360,W=640,H=360 BX=640,Y=0,W=640,H=360C.X=0,Y=0 ,W=0.5,H=0.5 DX=0.5,Y=0.5,W=0.5,H=0.514。在Unity引擎中,Collider指的是什么? (D) A.collider是Unity引擎支持的资源,可以用来存储网格信息。 B. Collider 是 Unity 引擎内置的一个组件,可用于渲染网格。 C.Collider是Unity引擎支持的资源,可用于游戏对象的坐标转换。 D.Collider 是 Unity 引擎内置的组件。可用于游戏对象之间的碰撞检测 15. 以下描述正确的是(C) A. 可用于自动缓存 Text Assets 到本地磁盘 B. 可用于自动缓存 Resource 到本地磁盘 C. 可以用于自动缓存Asset Bundles到本地磁盘 D.可用于自动缓存任意格式的Unity资源文件到本地磁盘 16.如何加载和播放外部视频?外部视频文件:目前测试仅支持ogg格式(设置网络获取视频时,必须将MIME.ogg设置为application/octet-stream)场景设置:在MainCamera上添加AudioSource脚本;在播放对象(如Plane)脚本上添加MovieTest脚本MovieTest:

    41.写出一个C类ip地址(192.168.1.105),该ip地址一个合法的网格掩码是(255.255.255.224).

    42.c/c++程序运行时有堆内存与栈内存之分,请写一个语句在堆中分配一个整数:(int a = new int(4)),在栈内存中分配一个整数:(int a = 5)。

    43.简述从C/C++源代码生成可执行文件所经历的几个过程和每个过程中所做的事情。

    预编译-》编译-》链接-》执行

    44.简述TCP建立连接的过程,最好能画出时序图。

    三次握手;

    45.有一个c语言函数

    unsigned int getN(unsigned int v){     v--;     v |= v >> 1;     v |= v >> 2;     v |= v >> 4;     v |= v >> 8;     v |= v >> 16;     v++;     return v; } 

    这个函数的作用是什么?返回结果为v或2^后跟v的+1次方(例如125返回128,128返回128) 46.列出static关键字在C语言中的用法。 static关键字至少有以下作用: (1)静态变量在函数体内的作用域是函数体。与auto变量不同,该变量的内存只分配一次,因此下次调用时其值将保持不变。的值,该函数的使用范围仅限于声明它的模块; (4)类中的静态成员变量为整个类所拥有,类中所有对象只有一份; (5) 类中的静态成员 该函数为整个类所拥有。该函数不接收this指针,因此只能访问类的静态成员变量。 47.解释一下Unity3D中什么是协程?并举出在主线程运行时启动另一段逻辑处理来辅助当前程序执行的例子。协程就像多线程,但又不是多线程。 Unity的协程会在每一帧后检测是否满足yield条件。 。 48.用于旋转物体的函数叫什么?当物体绕某一点旋转时调用什么函数?物体的自旋转函数transform.Rotate,物体绕某一点的旋转函数:transform.RotateAround49。使用prefab来预制对象有什么好处? 1。预制的一个重要优点是,在编辑预制资源后,场景中使用prefab克隆的所有游戏对象都将使用新编辑的资源,而无需一个一个人将值分配给场景中的对象。

    2。当需要在游戏中经常创建对象时,使用预制可以保存内存。 3。当您在场景中添加预制时,您会实例化预制。 50。有以下关系表R1和R2 R1(否,名称,性别,年龄,班级)R2(否,主题,得分)。主要键是否,没有学生人数,名称是名字,性别是性别,年龄是年龄,班级是班级编号,主题是学科,得分是分数。编写实现以下功能的SQL语句。找到学生编号20的学生的名称,主题和成绩。选择名称,主题,分数r1 r1 in r1。在多人网络中聊天通信,并计划如何实现多人协作交互式操作。 (例如,两个具有100个血值的字符可以相互射击。一个镜头将从血值中减去10个。当血值为0时,事实证明它已死亡)#52。当实例化prefab对象时,预制对象在上方安装了继承Monobehaviour的脚本。 1。请告诉我该脚本将按顺序调用哪些功能,并列出重复输入哪些函数。 #2.请告诉我,当该实例化对象首次调用setActive(false),然后调用setActive(true)后,此脚本依次调用哪些函数和方法? #3。如果this.gameobject.addcomponent()在脚本的awake()函数(ps:gamecontroller是继承单声道的另一个脚本类)中调用,那么脚本函数的调用顺序此时是否发生了变化? 53。如果(paretag(“敌人”))或(go.tag ==“敌人”),为什么?第一个是合适的,因为第二个占据了更多的内存。

    54.毁灭中级和破坏之间有什么区别?毁灭剂将在破坏对象时立即释放资源。销毁只是从现场摧毁,但仍在记忆中。 55。详细说明统一及其差异的资源加载方法? 1。通过资源模块,调用其负载功能:您可以直接加载并返回某个类型的对象。前提是将此资源放入名为资源的文件夹中。 Unity将存储所有内容,无论是否有场景参考。将其输入安装软件包。 2。以捆绑包的形式:将资源放入资产捆绑包中,然后将其放在服务器或本地磁盘上,然后使用www模块获取它,然后从该捆绑包中加载对象。 56。如何从代码的角度优化内存? #57。写下几种Invoke和Coroutine的用法? #58。以下函数的函数是计算斐波那契序列的第n项。请填空。

    int func(int n) {     if(n<=2) return 1;     return n + func(n-1); } 

    59。如果宏定义中有多条C语言,则可以使用字符(\)。 60。用C语言32位整数表示的最小数字是-2^31〜2^31-1.61。使用(点产品))矢量操作可以轻松计算三维空间中两个单位向量之间角度的cos值。 62。类似于Unix的系统中某个文件的权限为:Drw-R-R-r –,以(411)的八个数值形式表示,第一个D表示目录(文件夹)63。如果有以下程序段,其中s,a,b,c都被定义为整数变量,并且a,c已分配值(C大于0)

    s = a; for(b = 1; b <= c; b++)     s = s + 1; 

    然后,在功能上等同于上述程序段的分配语句为(b)为= a + b bs = a + c cs = s + c ds = b + c64。简要描述静态和const关键字的功能。静态关键字至少具有以下功能:(1)功能主体中静态变量的范围是功能主体。与自动变量不同,该变量的内存仅分配一次,因此其值仍将在下次调用时保持最后一个值; (2)可以通过模块中使用的功能访问模块中的静态全局变量,但模块以外的其他功能无法访问; (3)模块中的静态功能只能由该模块中的其他函数调用。此功能的使用范围仅限于声明其声明的模块。 (4)类中的静态成员变量属于整个类,并且只有一个类的所有对象的副本; (5)类中的静态成员函数属于整个类是,此功能不会接收此指针,因此它只能访问类的静态成员变量。 const关键字至少具有以下功能:(1)为了防止变量更改,您可以使用const关键字。定义const变量时,通常需要初始化它,因为将来将没有机会更改它。 (2)对于指针,您可以将指针本身指定为const,也可以指定指针指向const的数据,或者两者都同时指定为const; (3)在函数声明中,const可以修改形式参数,表明它是输入参数,其值不能在函数内更改; (4)对于类的成员函数,如果指定为const类型,则意味着它是一个恒定函数,无法修改类的成员变量。

    (5)对于类的成员函数,有时有必要指定返回值是const类型的,以便返回值不是“ lvalue”。 65。写代码以计算s = 1!+2!+3!+…+num!用您熟悉的语言,并以最简洁的方式。 num是输入,s是输出。 (!代表阶乘3!= 1 * 2 * 3

    Console.ReadLine(num) int s = 0; for(int i = 1; i <= num; i++) {     s += JieCheng(num); } public int JieCheng(int num) {     if(num < 0)     {         Console.WriteLine("error");         return;     }     if(num <=1)     {         return 1;     }     else {         return num * JieCheng(num - 1)     } } 

    66.使用您熟悉的语言从字符串中删除连续的重复字符。例如,原始字符串“ adffjkljaalkjhl”变为“ adfjkljalkjhl”

    int GetResult(char[] input, char[] output)   {       int i, j, k = 0;       int flag;       int length;       if(input == NULL || output == NULL)       {           return -1;       }       length=strlen(input);//求数组的长度       for(i = 0; i

    第三部分

    1。哪个真实的光源不统一? (d)A。点光源B.方向灯C. STATIUM D.阳光2。如何创建一个团结的地形系统? (d)A。Terrain->创建地形B.组件 - >创建Terrainc。资产 - >创建地形D. Windows->创建Terrain3。以下哪个操作步骤可以将“风向区”添加到场景中? (b)A。Terrain->风带B. GameObject->创建其他 - > Wind Zonec。组件 - >物理 - >风向区域D.资产 - >创建 - >风区4。在Unity编辑器中创建定向光。以下正确的步骤是什么? (二)编辑 - >渲染设置 - >定向灯。 gameObject->创建其他 - >定向Lightc。组件 - > renderin->定向灯。资产 - >定向光5。

    以下哪项不是相机中的“透明旗帜”? (D)A。Skybox B.纯色C.仅深度D.背景6。 Unity编辑不支持以下哪些脚本语言? (d)A。JavaScript B. C#C. Boo D. Perl7。对于预制,以下陈述是错误的吗? (d)A。预制资源可以在项目中反复使用。 PERFAB实例中的GameObject在层次结构中以蓝色C表示。相应的预制也将自动更改8。哪些资产存储可以打开Unity的资产商店? (a)A。Windows-> Asset Storeb。编辑 - > Asset Storec。文件 - >存储的资产。资产 - >资产存储9。在哪个面板中,您可以修改对象的空间属性,例如位置,方向,大小等。(b)A。Project B. Inspector C.层次结构D. Toolbar10。

    如何为资产资源设置标签以促进和准确搜索? (d)A。在项目窗口中选择一个资产,右键单击 - > create-> labelb。在项目窗口中选择一个资产,右 - >添加标签。在“项目”窗口中选择一个资产,然后单击“检查器”窗口中的标签图标D。在项目窗口中选择一个资产,然后单击“检查器”窗口中的“添加标签” 11。人体面具在Mecanim系统中的作用是什么? (d)A指定身体的一部分是否参与骨骼动画B。身体的一部分是否参与物理模拟C。身体参与渲染12。以下哪个操作步骤可以打开Unity编辑器的灯光图视图? (c)A。文件 - >灯光映射B.资产 - > LightMappingc。 Windows->灯光映射D.组件 - > LightMapping13。关于以下光图的陈述是什么? (c)A。轻贴纸的使用速度比使用实时源渲染要快。可以减少游戏记忆消耗C。

    它可以增加场景感,真实D.多个对象可以使用相同的光纹理图14。如何添加UV? (b)a如何在对象中添加光插图图。无需添加,B随时会自动生成B。更改导电对象的方法,然后检查“生成照明紫外线” C。更改入口设置设置并检查“交换UVS” D.更改对象的输入设置,然后选择“使用LightMaps” 15在UVS选项中。在哪个模块下,我可以修改渲染路径? (a)A。相机B.轻型C.渲染设置D.项目设置 - >质量16。以下哪种技术不是统一支持的封闭式淘汰技术? (d)A。PVS仅B. PVS和动态OBJETSC。自动门户生成D.仅动态17。以下语句对vector3的API正确? (c)A。Vector3。归一化可以获得三维矢量方法线B。Vector3。大小可以获得三维矢量的长度C。向量3。向前和vector3(0,0,1)是相同的D. vector3。点(向量A,向量B)用于计算向量A和向量B的Fork 18。以下哪个选项不是网格层属性的固有选项? (b)A。默认值B. Walkable C.无法步行D.跳跃19。写下您对游戏的理解和游戏在生活中的作用,并了解Unity3D软件最深入

    文章来源:https://m.gxlsystem.com/bianchengyuyan-657785.html

如有侵权,请致邮箱service@joyindie.com联系我们