U3D面试题
直接上新....
什么是协同程序?
答:在主线程运行时同时开启另一段逻辑处理,来协助当前程序的执行。换句话说,开启协程就是开启一个可以与程序并行的逻辑。可以用来控制运动、序列以及对象的行为。Unity3D中的碰撞器和触发器的区别?
答:碰撞器是触发器的载体,而触发器只是碰撞器身上的一个属性。
当Is Trigger=false时,碰撞器根据物理引擎引发碰撞,产生碰撞的效果,可以调用OnCollisionEnter/Stay/Exit函数;当Is Trigger=true时,碰撞器被物理引擎所忽略,没有碰撞效果,可以调用OnTriggerEnter/Stay/Exit函数。
如果既要检测到物体的接触又不想让碰撞检测影响物体移动或要检测一个物件是否经过空间中的某个区域这时就可以用到触发器
物体发生碰撞的必要条件?
答:两个物体都必须带有碰撞器Collider,其中一个物体还必须带有Rigidbody刚体。请简述GC(垃圾回收)产生的原因,并描述如何避免?
答:GC回收堆上的内存
避免:
1)减少new产生对象的次数
2)使用公用的对象(静态成员)
3)将String换为StringBuilder- C#中变量可以分为值类型和引用类型:值类型有简单类型,结构类型,枚举类型;引用类型:类,代表,数组,接口;
unity 中定义的10个重要的事件函数,按照执行的先后顺序,依次为:
Reset //Awake //OnEnable //Start //FixedUpdate //Update //LateUpdate //OnGUI //OnDestroy反射的实现原理?
答:审查元数据并收集关于它的类型信息的能力。
实现步骤:
导入using System.Reflection;
Assembly.Load("程序集");//加载程序集,返回类型是一个Assembly
得到程序集中所有类的名称
foreach (Type type in assembly.GetTypes())
{
string t = type.Name;
}
Type type = assembly.GetType("程序集.类名");//获取当前类的类型
Activator.CreateInstance(type);
//创建此类型实例
MethodInfo mInfo = type.GetMethod("方法名");//获取当前方法
mInfo.Invoke(null,方法参数);简述四元数Quaternion的作用,四元数对欧拉角的优点?
答:四元数用于表示旋转
相对欧拉角的优点:
能进行增量旋转
避免万向锁
给定方位的表达方式有两种,互为负(欧拉角有无数种表达方式)如何安全的在不同工程间安全地迁移asset数据?三种方法
答:
1.将Assets和Library一起迁移
2.导出包package
3.用unity自带的assets Server功能OnEnable、Awake、Start运行时的发生顺序?哪些可能在同一个对象周期中反复的发生?
答:Awake–>OnEnable->Start
OnEnable在同一周期中可以反复地发生MeshRender中material和sharedmaterial的区别?
答:修改sharedMaterial将改变所有物体使用这个材质的外观,并且也改变储存在工程里的材质设置。
不推荐修改由sharedMaterial返回的材质。如果你想修改渲染器的材质,使用material替代。TCP/IP协议栈各个层次及分别的功能
答:网络接口层:这是协议栈的最低层,对应OSI的物理层和数据链路层,主要完成数据帧的实际发送和接收。
网络层:处理分组在网络中的活动,例如路由选择和转发等,这一层主要包括IP协议、ARP、ICMP协议等。
传输层:主要功能是提供应用程序之间的通信,这一层主要是TCP/UDP协议。
应用层:用来处理特定的应用,针对不同的应用提供了不同的协议,例如进行文件传输时用到的FTP协议,发送email用到的SMTP等。委托是什么?委托跟事件的区别?
委托是把方法当做参数应用的一种形式,委托能很方便的通过“+=”“-=”的方法添加删除方法并调用方法,减少了一定量的代码而不失功能,更方便在可以轻松调用其他类中的方法
谈谈你对C,C++,Java,C#的看法?他们之间有什么区别?你最熟悉哪一种语言,谈谈你对这门语言的理解?
都是一种计算机语言,c++是c的优化版,C#又是在两者的基础上的进一步升级,
他们之间的区别在于都是一门独立的计算机语言,有各自的语法特点
熟悉C#,C#是一门面向对象的计算及语言,应用方向广泛
面向对象有什么特点?
面向对象有三大特点:封装 继承 多态;
封装:是对代码的一种保护,也是对代码功能的分类,体现在一但封装代码之后可以防止对代码的随意访问和修改让代码更具稳定性,封装之后可以对实现功能的代码进行分类及调用
继承:把父类的非私有成员通过继承使子类同样拥有,但子类不需要把父类的非私有成员全部重新在子类中书写出来即可调用。大大减少了代码的重复出现。
多态:是指不同的形态,如通过父类实例化子类的对象
怎样处理异常?Finally有什么用?紧接着如果使用了return Finally还会执行么?
用try·····catch····,Finally的作用是无论是否出现异常都照常执行其中的代码, 不会
- 怎么样对类进行排序?
一个对象集合,我想根据类中的某一个属性对对象进行排序,应该怎么做?
不能用循环去比较,,想想别的
说说你常用的排序算法,然后就是会选其中一种让你说明该排序的基本思路,和大概的实现过程
冒泡排序:先确定从大到小还是从小到大,然后用第一个下标的数跟后面所有元素比较,出现大于或小于它的就互换值再跟下一个下标的元素比较,然后再从第二个下标循环下去直到倒数第二个下标比较完截止 ;
插入排序:先确定从大到小还是从小到大,然后建一个长度相同的空数组,把最初的数组的元素一个一个放入最后面一个大于或小于新数组的某个元素后面,这个元素后面的元素向后移一个下标;
快速排序 :先确定从大到小还是从小到大,然后用第一个下标的元素跟后面元素比较,出现大于或小于它的就记录下标,用记录下标下的预算继续与后面的元素比较知道最后一个元素为止,再把第一个下标的元素与记录的下标的元素互换,再从第二下标开始比较记录
知道什么是反射么?请介绍一下反射
- 什么是Lambda表达式? 有什么作用?
知道正则表达式么? 回答了解一点 然后就是 怎么拿到0-9之间的所有数?请表述出来
静态类和静态方法的区别?静态类和普通类的区别?普通类为什么实例化对象之后才能去调用类里面的方法和属性?
静态类包含静态方法,但静态方法不止存在静态类中
静态类只能包含静态成员和常量,普通类不止包含静态成员和常量还包含其他非静态成员和变量
普通类都属于引用类型
值类型和引用类型有什么区别?
值类型存储的位置在栈空间,引用类型的存储的位置在堆空间,
值类型的改变是把原空间中的内容进行改变,引用类型的改变是开辟新的空间赋予新的内容再把新的空间位置指向引用类型
Socket通信用到了什么协议?TCP和UDP协议的区别?你还知道哪些层的哪些协议?
用到了TCP和IP,UDP协议,TCP协议的传输速度相对较慢但是传输的内容不会丢失,而UDP协议则是传输速度非常快但在传输的过程中容易出现数据丢失的情况
NGUI和UGUI的区别?可能真正的区别真的不是百度上的那些。。我对一个从unity1.0
做到现在的人说NGUI和UGUI的区别。。。
【ngui与ugui的区别】
1) uGUI的Canvas 有世界坐标和屏幕坐标
2) uGUI的Image可以使用material
3) UGUI通过Mask来裁剪,而NGUI通过Panel的Clip
4) NGUI的渲染前后顺序是通过Widget的Depth,而UGUI渲染顺序根据Hierarchy的顺序,越下面渲染在顶层.
5) UGUI 不需要绑定Colliders,UI可以自动拦截事件
6) UGUI的Anchor是相对父对象,没有提供高级选项,个人感觉uGUI的Anchor操作起来比NGUI更方便
7) UGUI没有Atlas一说,使用Sprite Packer
8) UGUI的Navigation在Scene中能可视化
9) UGUI的事件需要实现事件系统的接口,但写起来也算简单
【ngui与ugui的优缺点】
1) NGUI还保留着图集,需要进行图集的维护。而UGUI没有图集的概念,可以充分利用资源,避免重复资源。
2) UGUI出现了锚点的概念,更方便屏幕自适应。
3) NGUI支持图文混排,UGUI暂未发现支持此功能。
4) UGUI没有 UIWrap 来循环 scrollview 内容。
5) UGUI暂时没有Tween组件。
你熟悉哪些插件?举个例子说明一下
NGUI、A星寻路、对象池 、easytouch等
什么时候销毁不用的对象?你怎么知道那个对象现在没有使用可以销毁?析构函数?
确定对象不再使用以后可以销毁,根据经验和具体项目把确定可以销毁的销毁,后期在优化的时候再补充
U3D面试题的更多相关文章
- 某公司的U3D笔试题
某公司的U3D笔试题 今天这套笔试题感觉做得一般. 随后是二对一的技术面试,但涉及的技术细节相对较少,更多的是对以前工作.项目经历的询问. 然后说今天先到这里,让我等通知. 我还特意问了一下,通知 ...
- U3D面试题六
U3D面试题大全 1.Unity中碰撞器(Collider)和触发器(Trigger)的区别? 两方都必须要有碰撞体,且一方要有刚体,但在发生碰撞的条件下,Collide碰撞器会生产 碰撞反弹的物 ...
- 总结的U3D面试题
1.配置Unity 3d调试环境? 1) Visual Studio Tools for Unity 2) 访问http://unityvs.com 3) ...
- U3D面试题四
1.配置Unity3D调试环境 在windows环境下,设置unity3d的编辑器调试环境方法: 点击“Edit‘---”Preferences“,弹出如下窗口 选择MonoDeveop即可. 在编辑 ...
- U3D面试题系列二
高频问题: 一.什么是渲染管道? 是指在显示器上为了显示出图像而经过的一系列必要操作. 渲染管道中的很多步骤,都要将几何物体从一个坐标系中变换到另一个坐标系中去. 主要步骤有: 本地坐标->视图 ...
- U3D面试五
U3D面试题 配置Unity3D调试环境 Visual Studio Tools for Unity 访问http://unityvs.com 安装对应的版本 使用方法(生成项目文件,如何调试) Ar ...
- AS3语法和UNITY C#语法的异同
AS3 UNITY Sprite a = new Sprite(); trace(a.paent); 此时a.parent为null,还未AddChild到屏幕上, 一般用这个来判断在不在屏幕上 ...
- 分享我的2014年3月unity3d面试题与参考答案
今年3月份面试unity3d游戏程序,先做的面试题,然后人事问了我几个之前游戏开发的问题,问我英语怎么样等等,介绍了公司情况和对unity3d程序的要求.之后就回来了,总共面了不到1个半小时吧.笔试答 ...
- 史上最全的Unity面试题(持续更新总结。。。。。。) 包含答案的Unity面试题
这个是我刚刚整理出的Unity面试题,为了帮助大家面试,同时帮助大家更好地复习Unity知识点,如果大家发现有什么错误,(包括错别字和知识点),或者发现哪里描述的不清晰,请在下面留言,我会重新更新,希 ...
随机推荐
- getOutputStream与getWriter方法
getOutputStream方法用于返回Servlet引擎创建的字节输出流对象,Servlet程序可以按字节形式输出响应正文.getWriter方法用于返回Servlet引擎创建的字符输出流对象,S ...
- python闭包的理解说明
什么是闭包: 闭包(closure)是函数式编程的重要的语法结构.函数式编程是一种编程范式 (而面向过程编程和面向对象编程也都是编程范式).在面向过程编程中,我们见到过函数(function):在面向 ...
- 560. Subarray Sum Equals K
Given an array of integers and an integer k, you need to find the total number of continuous subarra ...
- win7 X64系统上 PL/SQL不能识别Oracle实例
电脑系统为Win7 64位,安装的PLSql为64位,安装的Oracle客户端为运行时类型的,应该为32位客户端 电脑上之前安装的32位toad可以识别Oracle实例 在系统添加了oracle_ho ...
- 【前端】JS文本比较插件
一.先上效果图 二.JS代码 /** * [文本比较插件] * 传递两个参数dom1.dom2,以dom1为基准进行比较. * 0)dom1和dom2不能都为空: * 1)如果dom1不存在,则dom ...
- VM 安装 linux Enterprise_R5_U4_Server_I386_DVD教程图解
ocp 学习笔记 20161126--------linux 笔记整理 一:安装linux系统环境: 1:linux 系统安装包下载路径:链接:链接: https://pan.baidu.com/s/ ...
- app中页面滑动,防止a链接误触
问题 app中list列表,当我们用手滑动屏幕,屏幕上页面内容会快速滚动,不会因为手已经离开了屏幕而滚动停止,突然手触摸暂停,当手指是在a标签上面时,会跳转链接,这对客户体验及其不好 思路 先判断滚动 ...
- LeetCode(2):Add Two Numbers 两数相加
Medium! 题目描述: 给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字.将两数相加返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头 ...
- php中类继承和接口继承的对比
PHP类继承: 1.PHP类不支持多继承,也就是子类只能继承一个父类,但是支持多层次继承,比如: class frist{ public function __construct(){ echo &q ...
- kafka删除topic数据
一.概述 生产环境中,有一个topic的数据量非常大.这些数据不是非常重要,需要定期清理. 要求:默认保持24小时,某些topic 需要保留2小时或者6小时 二.清除方式 主要有3个: 1. 基于时间 ...