u3d游戏客户端面试遇到需要准备的知识

三 常问的问题
 
1 你们游戏中模型的顶点数面数的要求?
    角色的面数控制在2000以内,小怪控制在1500以内
 
2 你对UI优化的一些处理

优化由Unity UI实现的用户界面是一门艺术。很少见很清楚的规则,相反,每种情况都必须联系系统行为,

仔细考虑评估。考虑优化Unity UI时最核心的原则是结合开销,平衡draw calls,复杂的UI 需要做权衡

这里有Unity UI用户遇到的四个常见的问题
过多的GPU片段着色器使用率(如填充过度使用)
过多的GPU时间开销在重建一个画布上
画布重建数量过多
过多的CPU时间开销在生成顶点(通常是文本)
所以UI布局时,同一深度的UI(Item)不要出现重叠。

精灵打包 ,做成图集使用,使用图集的有点:减少cpu的消耗,减少内存,提高渲染效率

为了避免网格重建带来的开销,可以对UI布局进行动静分离
可是对不进行响应事件的UI元素屏蔽掉其事件。

避免过度绘制 OverDraw(过度绘制) :总的原则就是:尽量避免重叠不可见元素的绘制

去除不需要的背景资源

分段设置背景

3 面向对象设计的三大基本特征和五大基本原则

三大特性是:封装,继承,多态  

五大基本原则 :
    单一职责原则,
    开放封闭原则(扩展性方面应该是开放的而在更改性方面应该是封闭的), 
    替换原则, 子类应当可以替换父类并出现在父类能够出现的任何地方
    依赖原则,具体依赖抽象,上层依赖下层
    接口分离原则
, 
4 你在项目开发中遇到的比较难解决的问题和最终是怎么解决的?
 
5 你们网络通信是怎么设计的

NetMQ是开源消息队列ZeroMQ的.NET版本,也是基于socket,所以可以在不同主机进行通讯。基于安全性的考虑,服务器内部的通讯必须是可信的,所以可以使用NetMQ。NetMQ的使用非常简单,如下几步走:

  • CreateContext
  • CreateSocket
  • Connect/Bind
  • Send/Receive
  • Dispose

通信基于Tcp长连接

 
6 了解序列化操作么
 
7 内存对齐
 
8 内存的几种模型

9 sdk中的登录回调是在那个类中实现完成的,unity 如何调用jave中的函数,以及调用原生的 Android/Ios原生接口

 
10 现在较为流行的一些框架

    统一的框架能规范大家的行为,互相之间可以比较平滑切换,可维护性大大提升。除此之外,还能代码解耦。例如StrangeIOC是一个超轻量级和高度可扩展的控制反转(IoC)框架,专门为C#和Unity编写

11 你认为Unity 使用组件的形式的优点?

12 在C#中标识C/C++的函数并调用

    标识 DLL 中的函数。至少指定函数的名称和包含该函数的 DLL 的名称

13 使用 Etc2纹理格式的 1024x1024的图片占用的内存是多少?

14 使用的性能分析工具

你可能感兴趣的:(3d,游戏,unity)