更多Unity3D试题
- 1在任意一种Lua插件中,都存在类似的机制:在C#层维护一个Cache来引用那些被Lua访问过的C#层对象,防止出现以下的问题:当Lua中再次访问该C#对象时,该对象可能已经被C#层的GC回收掉了,从而导致逻辑错误。所以,在Lua中始终保留某个C#层对象的引用,将会导致其无法被释放,当这样的引用越来越多,就会导致C#层的内存泄漏。
- 2探照灯光源(Spot Light) 会被哪些属性影响()
- 3对于大多数应用程序来说,HTTP是下载AssetBundles的最简单方法。然而,实现基于HTTP的下载机并不是简单的任务.自定义下载程序必须避免过多的内存分配、过多的线程使用和过多的线程唤醒。
- 4PBR、图像后处理的大量使用会导致GPU端的压力越来越大,甚至影响到了CPU端的Draw Call无法正常传输。这其中也跟不同的机型和不同的芯片型号相关,有些则反映到每个Draw Call的提交耗时随着GPU端的压力而无法增大,而且表现方式则是渲染线程等待GPU、主线程等待渲染线程的情况,具体耗时因芯片和具体渲染情况的不同,则是会表现在Mesh.Render、RenderLoop的自身开销和Camera.Render的自身开销中。
- 5使用pairs代替next。next总是从第一个非nil值开始遍历,直到找到一个非nil值,在删除一个表或者一个足够空的表时,很慢。使用next删除一个10万个元素的表时,耗时约为20秒。而使用pairs仅需要0.04秒。