
Unity3d面试
taotaoahui
这个作者很懒,什么都没留下…
展开
-
Unity3d面试7:泛型;
http://www.taidous.com/bbs/thread-37143-1-1.htmlUnity问答第4期1,FixedUpdate(),Update(),LateUpdate()的用法与区别。1,当程序启用时,Update()是在每一帧被调用。2,当程序启用时,FixedUpdate()是在每一固定帧被调用。3,当程序启用时,LateUpdate()也是转载 2016-10-07 21:29:12 · 940 阅读 · 0 评论 -
c#面试3(选择题)
46、下列关于 C# 中索引器理解正确的是 (c)A、索引器的参数必须是两个或两个以上B、索引器的参数类型必须是整数型C、索引器没有名字D、以上皆非47、以下关于 ref 和 out 的描述哪些项是正确的? ( 多选 ) ( ACD )A、使用 ref 参数,传递到 ref 参数的参数必须最先初始化。B、使用 out 参数,传递到 out 参数的参数必须最先初始化。原创 2016-09-27 21:13:35 · 4039 阅读 · 0 评论 -
C#中的序列化和反序列化是什么、有什么作用、使用方法详解
http://www.cr173.com/html/18207_1.html什么是序列化与反序列化???序列化和反序列化,我们可能经常会听到,其实通俗一点的解释,序列化就是把一个对象保存到一个文件或数据库字段中去,反序列化就是在适当的时候把这个文件再转化成原来的对象使用。 当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形转载 2016-05-10 17:07:10 · 707 阅读 · 0 评论 -
Unity3d面试5 网龙网络
Unity3d面试4collider的性能和效率大概的顺序是:Sphere Collider > Capsule > Box Collider > Mesh Collider.原创 2016-09-26 10:39:46 · 1552 阅读 · 1 评论 -
Unity中的优化技术
http://blog.youkuaiyun.com/candycat1992/article/details/42127811影响性能的因素首先,我们得了解,影响游戏性能的因素哪些,才能对症下药。对于一个游戏来说,有两种主要的计算资源:CPU和GPU。它们会互相合作,来让我们的游戏可以在预期的帧率和分辨率下工作。CPU负责其中的帧率,GPU主要负责分辨率相关的一些东西转载 2016-10-11 10:10:36 · 588 阅读 · 0 评论 -
c#面试2(选择题)
31、针对下面的C#代码: using System; delegate void D(int i); class P{ public static void Main(){ V(new D(R)); new D(P.R)原创 2016-04-18 09:11:26 · 4059 阅读 · 0 评论 -
UGUI与NGUI的区别与优缺点
1. NGUI与UGUI的区别 1) uGUI的Canvas 有世界坐标和屏幕坐标 2) uGUI的Image可以使用material 3) UGUI通过Mask来裁剪,而NGUI通过Panel的Clip 4) NGUI的渲染前后顺序是通过Widget的Depth,而UGUI渲染顺序根据Hierarchy的顺序,越下面渲染在顶层. 5) UGUI 不转载 2016-10-10 11:10:25 · 1990 阅读 · 0 评论 -
unity 3d 优化
1、模型(1)合并模型,渲染静态窗口比较有用。(2)100个三角形的MESH,在渲染时与1500个面数的物体是没太大差别的,所以最佳的渲染设置应该在每个模型大约1500-4000个三角面。(3)一个Mesh 一个材质(按材质合并)。(4)合并时可以将灯光附近的物体合并,加快渲染。(5)实时灯光数量限制。2、实时灯光 (1)每个被灯光照射到的GameObject都会在每转载 2016-04-27 09:18:15 · 577 阅读 · 1 评论 -
Unity 3D中的内存管理
https://onevcat.com/2012/11/memory-in-unity3d/Unity3D在内存占用上一直被人诟病,特别是对于面向移动设备的游戏开发,动辄内存占用飙上一两百兆,导致内存资源耗尽,从而被系统强退造成极差的体验。类似这种情况并不少见,但是绝大部分都是可以避免的。虽然理论上Unity的内存管理系统应当为开发者分忧解难,让大家投身到更有意义的事情中去,但转载 2016-10-10 10:35:45 · 479 阅读 · 0 评论 -
刨根问底U3D---从Profile中窥探Unity的内存管理
http://www.cnblogs.com/eran/p/4263241.html?utm_source=tuicool&utm_medium=referral这篇文章从Unity的Profile组件入手,来探讨一下Unity在开发环境和正式环境中的内存使用发面的一些区别,并且给出了最好控制内存的方法(我想你已经知道了...Prefab ) ,以及原因。事情的起因还是转载 2016-10-09 17:29:47 · 492 阅读 · 0 评论 -
前向渲染 延迟渲染
1.基础思路 目前我们看到最终画面都是2D的,只能看到有限的像素数,理论上我们只要处理(指光照,阴影处理)最终我们可以看到的点的效果就够了,多余的处理是浪费的。而正常的前向渲染(Forward Shading)流程是把空间的点进行各种剪裁后,进行处理,所处理量远远大于我们最终看到的。所以延迟渲染出现了。它先将摄像机空间的点光栅化转化成屏幕坐标后再进行处理。这样就能减少处理的次数,从而原创 2016-09-23 08:50:45 · 8395 阅读 · 1 评论 -
进程和线程
认同感和羊肉汤原创 2016-04-01 21:58:09 · 593 阅读 · 0 评论 -
Unity问答第5期:单例;
http://www.taidous.com/bbs/thread-37415-1-1.html1,什么是单例?举一个游戏中使用单例的例子单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的队形只能存在一个转载 2016-10-08 19:52:51 · 486 阅读 · 0 评论 -
一道事件委托面试题 - 猫叫老鼠跑主人醒
/*道事件委托面试题 - 猫叫老鼠跑主人醒*/using System;namespace CatCry{ class MainClass { static void Main(string[] args) { Cat cat = new Cat(); // cat.OnMew += Peo原创 2016-04-14 21:15:42 · 2039 阅读 · 1 评论 -
Unity3d面试6 DontDestroyOnLoad();PlayerPrefs;协同程序;游戏框架;Unity中播放视频;LOD技术
Unity问答第3期http://www.taidous.com/bbs/forum.php?mod=viewthread&tid=368881,如何避免点击UI按钮时穿透,同时触发了相同位置场景模型的点击事件的情况?(NGUI)1,如何避免点击UI按钮时穿透,同时触发了相同位置场景模型的点击事件的情况?(NGUI 判断 是否点击到UI)答:1,通过射线分层处理转载 2016-09-26 16:39:43 · 984 阅读 · 0 评论 -
关键字static的作用是什么? C++类中的静态成员变量和静态成员函数的作用
本文转自《面试宝典》1,函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时,仍维持上次的值;转载 2016-10-17 22:12:29 · 5614 阅读 · 0 评论 -
Unity3D面试题汇总
http://blog.youkuaiyun.com/yaokang522/article/details/464148631.请描述游戏动画有哪几种,以及其原理。2.alpha blend 工作原理3.写光照计算中的diffuse的计算公式4.lod是什么,优缺点是什么5.两种阴影判断的方法工作原理6.MipMap是什么?作用?7.用u3d实现2d转载 2016-05-03 06:52:51 · 617 阅读 · 0 评论 -
贴图、纹理、材质的区别是什么?
http://www.zhihu.com/question/257454723D中,这几个概念没有那么复杂。1、纹理即“纹路”,每个物体表面上不同的样子,譬如说木头的木纹状。2、贴图是图,最简单的形式是ps之类的软件做出来的一张图,这些图在3D中用来贴到物体的表面,用来表现物体的“纹理”。3、材质主要是用来表现物体对光的交互(反射、折射等)性质的转载 2016-09-30 22:14:04 · 6784 阅读 · 0 评论 -
Draw Call是什么,怎么降低?
Draw Call 就是CPU调用图像编程接口。 以下内容借鉴于冯乐乐同学的如何减少Draw Call?对于批处理,提交大量很小的Draw Call会造成CPU的性能瓶颈,即CPU把时间都话费在准备Draw Call的工作上了。那么一个很显然的优化想法,就是把很多小的Draw Call 合并成一个大的Draw Call,这就是批处理(Batching)的思想。 在游戏中我们原创 2016-09-29 21:59:54 · 4401 阅读 · 3 评论 -
资源包常见问题 AssetBundles
资源包常见问题1. 什么是资源包 (AssetBundles)?2. 资源包 (AssetBundles)有何用途?3. 如何创建资源包 (AssetBundles)?4. 如何使用资源包 (AssetBundles)?5. 如何在编辑器中使用资源包 (AssetBundles)?6. 如何缓存资源包 (AssetBundles)?转载 2016-09-29 21:34:21 · 1551 阅读 · 0 评论 -
Unity中的Shader及其基本框架
http://www.cnblogs.com/QG-whz/p/4778304.html?utm_source=tuicool&utm_medium=referralshader和Material的基本关系Shader(着色器)实际上就是一小段程序,它负责将输入的Mesh(网格)以指定的方式和输入的贴图或者颜色等组合作用,然后输出。绘图单元可以依据这个输出来将图像绘转载 2016-09-29 17:05:47 · 555 阅读 · 0 评论 -
Material和Shader是什么,两者有什么关系?
Shader是Material的一部分。程序上是叫着色器,是根据计算 即时演算 生成贴图的程序。常常用来处理那些无法用固定贴图表现的模型 ,比如玻璃,水面等等。实际上是一小段程序,它负责将输入的Mesh(网格)以指定的方式和输入的贴图或者颜色等组合作用,然后输出。Materail是模型的材质。是顶端的了,包含贴图,shader,凹凸等消息。转载 2016-09-29 16:58:06 · 9219 阅读 · 0 评论 -
对3D渲染管线(渲染流水线)的理解
http://www.cnblogs.com/He-Jing/p/3760106.html、渲染管线的概念:3D渲染管线也称为渲染流水线,可以将其理解为一个流程,就是我们准备一些数据,让GPU对这些数据做一些处理,最后得出一张二维图像,渲染流程主要分为几个大的阶段:数据准备阶段,顶点处理阶段,光栅操作阶段,像素着色阶段。一、数据准备阶段该阶段主要是根据用户提供的顶点转载 2016-09-29 15:18:17 · 5216 阅读 · 0 评论 -
Unity面试8
http://blog.youkuaiyun.com/husheng0/article/details/476890051、请简述值类型与引用类型的区别?答:区别:1.值类型存储在内存栈中,引用类型数据存储在内存堆中,而内存单元中存放的是堆中存放的地址。2.值类型存取快,引用类型存取慢。3.值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针和引用。4.栈的内存是自动释放转载 2016-10-24 21:19:43 · 701 阅读 · 1 评论 -
可编程管线(流水线),可编程着色语言
D3D程序设计的最终目的是把场景中的3D物体显示到计算机显示器屏幕上,为实现这个目的,要经历三个阶段:1.3D物体建模。 一个3D物体一般包括若干曲面,任意曲面都可以由若干三角形面片组成,一个三角形由三个顶点确定。3D物体模型是用顶点定义的物体,在3D物体建模阶段要定义3D物体的所有顶点位置和属性。这步对于固定功能流水线和可编程流水线是一致的。2.顶点处理。 把转载 2016-09-23 08:49:09 · 825 阅读 · 1 评论 -
Unity3D中目标相对自身的前后左右方位判断
http://blog.youkuaiyun.com/cen616899547/article/details/38336185在做rpg类游戏的过程中,经常遇到要判断周围怪物相对自身的方位1.判断目标在自己的前后方位可以使用下面的方法: Vector3.Dot(transform.forward, target.position) 返回值为转载 2016-10-08 22:08:40 · 817 阅读 · 1 评论 -
Unity3d碰撞检测中碰撞器与触发器的区别
http://www.cnblogs.com/infly123/p/3920393.html?utm_source=tuicool&utm_medium=referral要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动。碰撞体是物理组件的一类,它要与刚体一起添加到游戏对象上才能触发碰撞。如果两个刚体相互撞在一起,除非两个对象有碰转载 2016-04-28 20:45:34 · 919 阅读 · 1 评论 -
Unity3D研究院之游戏场景的切换与持久化简单数据的储存(十四)
http://www.xuanyusong.com/archives/542持久化简单的数据储存在Unity3D 中提供了一个简单有效的方法,如果之前的你做过Android的开发你会发现在Unity3D中持久化数据的储存和Android非常的想象。那么下面MOMO 将用一个简单有效的例子向大家介绍Unity3D中持久化数据。首先我们须要熟悉一下Unity3D中的PlayerPr转载 2016-04-06 22:12:53 · 968 阅读 · 0 评论 -
u3d支持视频格式
Unity3d只支持 .mov, .mpg, .mpeg, .mp4, .avi, .asf这些格式。原创 2016-03-28 15:55:52 · 1299 阅读 · 0 评论 -
c#之抽象类, 接口
抽象类:在class之前加abstract关键字就是抽象类。1,抽象类不能直接被实例化出来(就是无法直接new出来2,抽象类中可以包含抽象方法(抽象方法没有方法体)。3,非抽象方法一定要申明方法体4,如果抽象类中有抽象方法,那么派生类中就一定要去实现这个抽象方法,否则会报错。5,非抽象类不能包含抽象方法。 6,abstract不能修饰字段,但是可以修饰属性。同时派原创 2016-03-28 15:31:37 · 319 阅读 · 0 评论 -
c#封装三维向量,另外也看了下别人的C++封装
一、 c#实现/* Vector3 Definition Created by taotao man on 2016-4-12 brief:封装三位向量类Vector3 // 修改记录: date: add SetA() Change GetA();*/using System;using System.Collections.G原创 2016-04-12 11:49:46 · 1552 阅读 · 1 评论 -
白话经典算法系列之一 冒泡排序的三种实现
http://blog.youkuaiyun.com/morewindows/article/details/6657829 冒泡排序是非常容易理解和实现,,以从小到大排序举例:设数组长度为N。1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。转载 2016-03-30 07:55:10 · 677 阅读 · 4 评论 -
第三人称控制器
/* RealFPSController Class Definition Created by taotao man on 2016_1_11 Brief: 第三人称控制器*/using UnityEngine;using System.Collections;public class RealFPSController : MonoBehaviour { public原创 2016-01-26 09:02:06 · 867 阅读 · 1 评论 -
C#的ArrayList集合的使用
http://blog.youkuaiyun.com/u010792238/article/details/30067653?utm_source=tuicool&utm_medium=referral集合类是一种将各相同类型的对象集合起来的类,数组实质上也是集合类型中的一种。集合主要是以线性结构存储结构C#提供ArrayList类、Queue类、Stack类1转载 2016-01-25 06:03:52 · 889 阅读 · 0 评论 -
C#返回arraylist集合长度的方法是什么?C#ArrayList重复数据删除
集合是 count(), 数组是Length那个是引用类型的问题,ArrayList.Contains(object)里面的object比较的是引用(就像是一个指针),object的引用要指向的实际值一致才返回true。 要比较对像的实际值要用Equals(object),当然,在你的对像里重载Equals(object)函数,例如:public override bool Equ原创 2016-01-25 06:02:23 · 7185 阅读 · 1 评论 -
unity3d面试2
1. Unity实现昼夜交替的方法或思路?在场景中设置一个主灯光,同时旋转能实现昼夜交替;动态控制环境光照或者调整摄像机;2 写出Unity脚本至少5个生命周期,并写出顺序。 AwakeStart FixedUpdate Update LateUpdate 3. 如何进行场景灯光的烘焙,说出具体的过程。将场景中需要设置为静态的物体原创 2016-04-17 22:08:29 · 1623 阅读 · 0 评论 -
c#封装4x4的矩阵
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ceshi{ class Matrix4X4 { float[,] matrix; privat原创 2016-04-15 22:06:31 · 2470 阅读 · 0 评论 -
Unity3d面试3
一、请简述GC(垃圾收集)产生的原因,并描述如何避免 产生的原因:GC 回收堆上的内存 避免: 1)减少用new创建对象的次数,在创建对象时会产生内存碎片,这样会造成碎片内存不法使用 2)使用公用的对象(静态成员,常量),但是不能乱用,因为静态成员和常量的生命周期是整个应用程序。 3 )将 String换为 StringBuilder 4)使用object pool转载 2016-05-02 23:17:33 · 1260 阅读 · 0 评论 -
Unity3d面试4
http://www.taidous.com/bbs/thread-36457-1-2.html1,向量的点积,叉积,在游戏中的应用(分别举一个例子说明)判断目标在自己的前后方位可以使用下面的方法:[C#] 纯文本查看 复制代码? Vector3.Dot(transform.fo转载 2016-08-17 16:29:29 · 1327 阅读 · 0 评论 -
拖拽以及常用的鼠标事件,给物体添加力
// 调用Unity的鼠标拖拽函数IEnumerator OnMouseDrag(){// 获取目标对象当前的世界坐标系位置,并将其转换为屏幕坐标系的点Vector3 Pos = Camera.main.WorldToScreenPoint(transform.position);// 设置鼠标的屏幕坐标向量,用上面获得的Pos的z轴数据作为鼠标的z轴数据,使鼠标坐标// 与目标对象坐原创 2016-01-21 12:35:53 · 706 阅读 · 1 评论