腾娱
发表于|更新于|面试准备
|浏览量:
文章作者: 岁迹
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 岁迹!
相关推荐

2026-06-27
面试题
你在项目中提到使用单例模式和观察者模式,能否具体说明它们的应用场景? 在2D类银中使用单例模式管理全局系统,如音效管理器,技能管理器,确保全局唯一实例以及方便各处调用。观察者模式则是用于解除模块间的耦合程度,比如当玩家的血量发生变化时,UI系统会根据事件自动更新血条,而不需要直接引用玩家对象。 追问:单例模式如何避免线程安全问题?观察者模式与Unity事件系统有和异同? 可以通过加锁或者静态构造函数实现。观察者模式更加灵活,可以自定义事件参数,Unity事件适合编辑器的可视化配置 维度 观察者模式(经典) Unity 事件系统 实现方式 通常通过接口定义(如 Observer/Subject),手动维护订阅列表。 基于 UnityEvent 类,可视化配置(Inspector 中可直接绑定)。 类型安全 编译期类型检查严格(需显式定义事件参数类型)。 支持泛型 UnityEvent<T>,但通过反射实现,部分错误可能在运行时暴露。 使用场景 通用设计模式,适用于任何编程语言 / 框架。 深度集成 Unity 生态,支持与组...

2026-06-27
多益

2026-06-27
八股文
C#相关1.值类型和引用类型值类型:bool,float,int,double,struct,enum 引用类型:string ,class,object,delegate,array,interface 区别: 值类型存储再栈上,引用类型存储在堆上。相应的栈上的值类型存储快,堆上的引用类型存储满 值类型存储的为真实的值也就是实际数据,引用类型指向的是内存堆中的指针和引用 值类型在使用后自动释放,引用类型使用GC来释放 值类型的继承是System.ValueType ,System.ValueType继承于System.Object,引用类型继承System.Object 值类型在栈中存储的是直接的值,引用类型数据本身实在堆中,栈中存放的是一个引用的地址 底层: 引用类型在实例化时,先在栈内开辟空间,用于存储堆中对象的地址,然后在堆内开辟空间,存储引用对象。 而值类型直接在栈中开辟空间存储对象。值类型也有引用地址,但都在栈内的同一空间。 在参数对象进入方法体内,实则是在栈中开辟了新的临时空间。(也就是参数对象的副本)栈内值类型的修改,由于栈中地址不同,所以值类型不...

2026-06-27
梦加网络
简单描述C#中的闭包?以及写一段闭包代码Unity中几种常用的资源加载的方式以及应用场景

2026-06-27
peropero面试
基础差(主要是拷打八股文)1.协程原理以及底层实现Unity协程核心本质都是迭代器 + 状态调度。 总结:Unity 协程的底层本质上就是“迭代器 + 状态机调度”机制。它依赖 C# 的 IEnumerator 接口和 yield return 语法实现,当我们通过 StartCoroutine() 开启一个协程时,Unity 并不会创建新线程,而是把这个协程注册到主线程的调度系统中执行。编译器会把带有 yield return 的协程函数自动转换成一个状态机类,这个类会保存协程执行时的上下文信息,比如当前执行到哪一步、局部变量的值以及当前等待条件等。当协程运行到 yield return 时,会先暂停当前执行,并把等待信息返回给 Unity;之后 Unity 在合适的时机继续调用这个迭代器的 MoveNext() 方法,使协程从上一次暂停的位置继续往下执行,直到函数执行结束或再次遇到新的 yield return。因此,协程本质上仍然是在主线程中分段执行的函数,它能够把逻辑拆分到多个帧里完成,但不能真正解决耗时计算造成的主线程阻塞问题。 2. 调度器的 “心跳” 作用协程不会自...

2026-06-27
多乐游戏
多乐游戏一面(技术面)1.自我介绍2.Lua热更新Lua热更新一般是结合AssetBundle来实现资源和代码的热更新。 首先是代码层面,会把需要热更的逻辑用Lua编写,再把lua脚本打包成AB包,游戏启动时先加载基础的C#核心框架,然后通过Lua虚拟机加载Lua代码;如果后续有代码更新,就从服务器拉取新的LuaAB包,替换本地的旧包,重启游戏或者重载Lua虚拟机就能生效,不用重新安装整个游戏。 资源热更新也就是类似的,把UI贴图,场景资源这些打成AB包,标记好版本号,客户端对比服务器版本,下载更新后的AB包替换本地资源,就能实现资源的热替换。 3.AB包和Lua脚本一般放在那里1.在本地测试的阶段一般放在Unity项目的StreamingAssets目录下,这个目录的内容会被打进安装包,游戏刚启动就可以从这里读取初始的Lua代码和AB包。 2.正式上线后更新的LuaAB包会下载到PersistentDataPath目录,这个是游戏在设备上的可读写目录,重启游戏会优先加载这个目录的新包,会覆盖旧逻辑 4.如何比较两个包的差异,来从资源服务器下载呢?通过比较资源包的版本号也就是MD...
公告
记录游戏客户端开发、项目复盘和个人成长。