Unity游戏客户端面试(2019)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/shirln/article/details/98179378

推荐阅读:

一。广福地铁站附近某公司

该公司是由VR转型成游戏行业的公司,公司正在研发的是一款二次元卡牌养成游戏,目前有10+人,使用Unity,C#,uLua开发。
公司有8道笔试题:
1.是否熟悉UGUI,Dotween
2.animator是什么
3.animation动画怎么制作
Animation和Animator 虽然都是控制动画的播放,但是它们的用法和相关语法都是大有不同的。Animation 控制一个动画的播放,而Animator是多个动画之间相互切换,并且Animator 有一个动画控制器,俗称动画状态机。
(一) Animation模块
(1)新建一个对象,并且在对象上附加Animation组件;
(2)选中对象,按快捷键:ctrl+6 打开动画编辑器,新建动画。
(3)播放动画

void Start ()
{
	_anim = GetComponent<Animation>();
	if (_anim != null)
	_anim.Play("Test");

}

(二) Animator模块
(1)新建一个对象,在Unity 编辑器中Window -> Animation 弹出Animation 编辑页面,新建一个动画保存。
(2)双击.controller这个文件打开Aniamtor 编辑器。
(3)直接运行查看效果
4.协程的实现

StartCoroutine(协程的方法名());//调用方法一
StartCoroutine("协程的方法名");//调用方法二
IEnumerator 方法名()
{
	...
    yield return new WaitForSeconds();
}

5.对x个1-100不重复的整数进行排序
6.static,const,readonly getonly的区别
7.接口和抽象类的区别?
8.如何优化代码
(1)for循环得到结果记得break或return;
(2)乘法和除法使用移位操作

二。软件园某公司

笔试题:5页A4纸,但是题目都不是很难,题量也不多,全是简单编程题
C#笔试题(必答题)
1.请简述类和结构体的区别是什么?
2.请简述抽象类和接口的区别是什么?
3.了解设计模式么?请列出您所知道的设计模式的名字。
4.请简述什么是反射?
反射提供了封装程序集、模块和类型的对象(Type 类型)。可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性。如果代码中使用了属性,可以利用反射对它们进行访问。
在这里插入图片描述
5.C#中的委托是什么?事件是不是一种委托?
委托可以把一个方法作为参数代入另一个方法。 委托可以理解为指向一个函数的引用。事件是一种特殊的委托
6.try{}里面有一个return语句,那么紧跟在try后的finally{}里的code会不会被执行,如果会,请问在什么时候被执行,在return前还是后?
在这里插入图片描述
7.下面代码什么错?

short sl=1;
sl=sl+1;

下面代码游什么错?

short sl=1;
sl+=1;

没错,会自动强行转换
在这里插入图片描述
8.一列数的规则如下:1,1,2,3,5,8,13,21,34…,求第30位数是多少,用递归算法实现(C#)

public static int Foo(int i)//即定义一个公共静态函数体,输入一个整数(第X位数),返回值;
{
	if (i <= 0) return 0;//预防输入0或负数,输入则返回“0”;
	else if (i > 0 && i <= 2) return 1//如果输入第1位或第2位,则返回“1”(如题);
	else return Foo(i - 1) + Foo(i - 2);//输入其它的数则返回前两个数的值。注意:因为求数列中每一个值都是调用该函数,所以求前两个数的值就又要调用2个这个函数。这就是递归(调用自身)。
}

Foo(30);

在这里插入图片描述
Unity笔试题(必答题)
1.Unity3D从唤醒到销毁有一段生命周期,请列出系统自己调用的几个重要方法。
2.请简述Unity3D项目中预制组件上出现数据丢失的原因可能有哪些?
3.Unity3D中的协程(coroutine)和C#线程之间的区别是什么?
4.编辑器运行时,资源加载的方式有哪些?
(1)通过Resources模块,调用它的load函数:可以直接load并返回某个类型的Object,前提是要把这个资源放在Resource命名的文件夹下,Unity不关有没有场景引用,都会将其全部打入到安装包中。
(2)通过bundle的形式:即将资源打成 asset bundle 放在服务器或本地磁盘,然后使用WWW模块get 下来,然后从这个bundle中load某个object。
(3)通过AssetDatabase.loadasset :这种方式只在editor范围内有效,游戏运行时没有这个函数,它通常是在开发中调试用的
在这里插入图片描述
5.分别解释这几个目录的作用

Plugins:扩展unity功能的插件
Editor:主要用来扩展unity编辑器的功能
Resources:动态加载游戏资源到场景中
StreamingAssets:存放需要保留原格式的资源

6.写出Unity释放资源/内存有关的几个方法
在这里插入图片描述
Lua笔试题(选答题)
1.有一个table t,请简述t.x和t[x]的区别是什么?
在这里插入图片描述
在这里插入图片描述
面试的几个问题:
1.内存优化
参考文章:内存优化之资源管理
2.关闭一个界面的方法:隐藏,销毁,移到屏幕在,设置摄像机的渲染层级
3.卡顿怎么解决,比如背包系统有3000个物品,用户操作会很卡,怎么解决

三。高新世贸中心某公司

这是一家19年成立的公司,一个老板开了几种类型的公司,但都在一个地方上班,里面有两个棋牌项目,一个momo游戏,一个物联网项目,还有人工智能项目。
笔试题大概10道左右,都很基础,只回忆出两道题:
1.OneEnable,Awake,Start,Ppdate,FixedUpdate,LateUpdate的执行顺序,作用,执行次数。
2.移动/旋转的快捷键:W/E

三。环球中心某公司

这是一家2018成立的公司,工作时间:朝九晚九
线上笔试·
1、 OnEnable、Awake、Start运行时的发生顺序?哪些可能在同一个对象周期中反复的发生
      Awake——OnEnable——Start;OnEnable
2、 MeshRender中material和sharedmaterial的区别?
      Sharedmaterial改了材质,使用了sharedmaterial的都会同步改变,但material不会随着同步改变
3、 LOD是什么,优缺点是什么?
      多层次细节,根据模型位置等决定渲染。优点:可以根据需要选择渲染模型;缺点:需要美术提供模型的不同细节。加重了包体负担。
4、 ref参数和out参数是什么?有什么区别?
      Ref使用前必须初始化,但是out不需要。
5、 Unity3d的物理引擎中,有几种施加力的方式,分别描述出来
      Rigibod.AddFoce;Rigibod.AddFoceAtPosition
6、 Ugui,NGUI的渲染方式,如何在两个UI之间插入3d特效
      添加一个专门渲染3d特效的摄像机,或设置sortingOrder。
7、 简述List(vector)与LinkedList(list)的区别
      List(vector):数据结构是数组,查询快,增删快;LinkedList(list):数据结构是链表,查询慢,增删快
8、 C#内存分配原理,垃圾回收函数是什么,如何减少垃圾回收触发?
      GC;用StringBullder代替String。
9、 列举3d渲染管线流程
      顶点着色器——裁剪——片元着色器——显示
10、算法锐角处理
      汽车从a出发,经过中心点o,到达b,当角∠aob为锐角时,需要在程序上插入两个点(偏移为1),从新连接使得每次转弯都不那么尖锐,如图虚线。请分别列举a,b位置的不同情况下偏移点计算
在这里插入图片描述
现场笔试
1.二叉树中序排序算法
2.快速排序算法
面试题
面试
1.连连看连线算法
2.洗牌算法
在这里插入图片描述

四。复城国际某公司

笔试无
面试主要针对你做过的项目提问,问你如何实现,以及该功能的优化
例如·:
1.五粮液活动怎么实现的
2.连连看关卡实现
3.连连看地图生成算法,如果每种出现有一定的权重,又该怎么实现
4.拍一拍成就系统实现,如果有个类实现,类里应该包含哪些。
5.儿童游戏关卡界面实现

四。软件园游戏工厂某公司

笔试无
面试

1.热更新以及框架
tolua
2.代码管理以及差异
svn是直接与服务器进行交互,git是将项目缓存在本地再推送到服务器
3.UDP,TCP区别
(1)基于连接(TCP)与无连接(UDP);
(2)对系统资源的要求(TCP较多,UDP少);
(3)UDP程序结构较简单;
(4)流模式与数据报模式 ;
(5)TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。

五。箐蓉汇某创业公司

这个公司来得比较干脆,差不对就是一个上机题,给你一个他们实现的界面效果,让你照着实现。大致是一个滑动列表,实现列表元素的动态生成,初始化相关;然后需要对列表中的元素按等级排列,按品质和等级排列;最后需要实现选中一个元素,显示此元素的相关信息。上机时间(30分钟)
最后会根据你的成品问你一些问题,例如:
1.按品质和等级排列怎么实现?
品质*100+等级进行排列
2.排序算法你知道哪些?冒泡法如何实现?直接上机写
3.如何实现选中一个物体,显示详细信息?
将列表中的元素信息用一个list存储,点击某个元素时传入点击元素的id对应去取list中的信息.

六。天府二街领地环球金融中心A座

直接面试,没问什么技术问题,就稍微打听了一下上家公司的相关情况。

七。川师旁有点学院某3D仿真公司

这个公司主要是做3D仿真课件的,当时看了下岗位需求写的是做过VR或者游戏的优先,就尝试着投了下,其实与想象中差距挺大的。
1.单例模式的作用?
2.抽象是什么?
在继承关系的前提下, 实例化出不同的对象, 这些对象调用相同的方法, 但是却表现出不同的行为, 这就叫做多态
虚方法,抽象类,接口是三种实现多态的手段
3.给你一段C++代码,问你用C#如何实现?
4.大学自己最擅长的科目是什么?

猜你喜欢

转载自blog.csdn.net/shirln/article/details/98179378