Unity3d面试题

本文深入探讨了Unity3D中的关键技术,包括delegate和event的概念、特效加载与销毁的方法、排序函数的设计、Unity3d脚本的生命周期、质数判断算法、DrawCall优化策略、U3D渲染管线的理解、AssetBundle的内存管理、数据存储结构的设计,以及material和shader的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 简述delegate和event关键字
2 某工具类函数如下:

Util.InvokeDilay(uint pTime,Action<GameObject> pPlayAction);

有十个特效预制体,从Effect1-Effect10的Resources目录下,现在需要2秒,分10次加载,2秒后分别销毁这些特效,写出实现代码。
3 写一个可以对所有可比较类排序的函数
4 Unity3d脚本的生命周期的重要脚本
5 策划文档给出一个需求:从0到100,每一帧顺序取出一个数字,判断此数字是否是质数
6 什么是Draw Call ,有什么方法可以减少DrawCall
7 谈谈你对U3D渲染管线的理解
8 什么是AssetBundle? 谈谈你对AssetBundle内存分配情况的理解
9 某批次产品

class SerilizedProduct{
//产品唯一标识
public int Key{get,set;}
//产品名称
public string Name{getset;}
// 产品类型
public int Type{get;set;}
//生产进度
public int Progress{getset;}
//生产机器号
public int Machine {get; set}
}

如果生产进度1-4之间为未完成产品。生产进度在4-7之间为待完成7-10为待审核请设计数据储存结构,使得可以方便随机查看某类型未完成产品所在的机器号。(要求写出储存数据结构及初始化方法)
10 什么是material,什么是shader,二者有什么关系

答:
Shader(着色器)实际上就是一小段程序,它负责将输入的Mesh(网格)以指定的方式和输入的贴图或者颜色等组合作用,然后输出。绘图单元可以依据这个输出来将图像绘制到屏幕上。输入的贴图或者颜色等,加上对应的Shader,以及对Shader的特定的参数设置,将这些内容(Shader及输入参数)打包存储在一起,得到的就是一个Material(材质)。之后,我们便可以将材质赋予合适的renderer(渲染器)来进行渲染(输出)了。

11 简述单例模式与观察者模式,并用伪代码实现其中之一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值