网易游戏研发工程师实习生(客户端方向)一面

项目

1、项目介绍以及你在开发过程中负责的内容。
2、卡牌拖拽效果如何实现。

  • 鼠标点击卡片时,获取鼠标的位置以及卡片的中心位置,计算二者的距离向量,在update函数里根据距离向量以及鼠标的位置,更新卡片的位置,即可实现卡片随着鼠标一起移动。

3、场景的实时渲染会造成比较大的开销,请问可以通过什么方法可以减少部分开销。

  • 烘焙,将不需要变化的场景提前渲染到纹理中存储,场景直接采样纹理得到画面效果而不需要实时渲染。

4、卡牌图鉴中如果卡牌数量过多如何设计可以减少gameobject的创建以及优化管理。

  • 用MVC模式将数据管理和视图ui分开,通过控制器来连接两部分,M部分进行数据管理,包括物品以及数量等等,V用来将数据加载到游戏背包画面中展示,C用于连接两部分。

语言基础

1、c#的生命周期。
(1)编译阶段:Reset
(2)开始阶段:Awake-OnEnable-Start
Awake:用于初始化,并且只会执行一次,比如创建游戏对象
OnEnable:脚本每次激活时执行
Start:在初始化后的下一帧执行,只会执行一次,程序UI的初始化,比如获取游戏对象或者组件

(3)迭代更新阶段:FixedUpdate-Update-LateUpdate
FixedUpdate:以固定的频率调用
Update:以非固定的频率调用
LateUpdate:每当Update之后立即调用

(4)显示阶段:OnGUI
(5)清除阶段:OnDisable-Ondestroy
OnDisable:脚本不可用时执行
Ondestroy:脚本销毁时调用,只执行一次

2、awake和OnEnable的区别。
3、面向对象语言的三大特性。
继承、封装、多态
4、举个例子解释一下多态。
5、抽象类和接口的区别。
一个类只能继承一个抽象类但是可以继承多个接口
6、重载和重写有什么区别。
重载:重载的方法参数上存在不同,包括数据类型以及参数的数量。
重写:重写的方法的参数以及方法名都要一致。

数据结构

1、list和vector有什么区别。
一个是链表结构一个是数组结构
2、了解哪些排序算法。
直接插入、选择、冒泡、快排、希尔、归并、堆、基数
3、简单描述一下快排和冒泡的思路。
4、冒泡和快排的时间复杂度。
6、二叉树的三种遍历的顺序。
前中后,根的前中后,但是子节点都是先左后右
7、二叉查找树的特点。
左节点<根节点<右节点
8、如果二叉查找树插入的节点过多会发生什么情况。如何解决。
树结构会发生偏移,会存在左右不平衡的情况,查找起来也会麻烦许多,通过左旋或者右旋使得二叉树两边平衡

图形学

1、除了unity的基本的渲染管线你还了解哪些渲染管线,简单介绍一下。
(1)SRP可编程的渲染管线,有两层,在底层封装图形API等,在第二层允许通过c#脚本来设置渲染命令,unity将这些命令传给底层图形架构。
(2)LWRP用SRP写的一个渲染管线,如果不想花很多时间在管线上的编写,就可以使用LWRP。
(3)URP在SRP上扩展得到,使用一个实时阴影光和每个对象的光消隐执行单遍正向渲染,而传统的是对每个像素光执行一次附加遍历。LWPR的升级版本。
(4)HDRP(高清渲染管线)更加高清精致的效果。支持一些现代图形学的一些东西,光追等等。
2、叉乘和点乘的物理意义。
3、物体描边如何实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值