自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 [Unity]AssetBundle资源管理以及边玩边下解决方案

这个事情我一开尝试过去规划前期的资源按目录规划,但是发现由于开发团队人员流动性大,加上除了程序之外其其他人包括美术都很难理解这些东西,所以后来改变思路,就是手动的拆分资源,就是是靠团队去跑游戏,在跑游戏的过程中,记录下所有资源加载过的信息,包括模型、场景、UI等预设,都会调用前期的资源加载统一的接口,生成一份加载过的列表,再根据这份列表信息,去拆分安装包。在打安装包的时候,就是Editor环境下,打完所有资源后,去遍历这个列表,在安装包内留下这份列表的资源以及每个资源的子子孙孙的引用。

2023-10-06 18:35:32 332 1

原创 [Unity--热更新之增量更新介绍]

在热更新中,增量更新指的是在进行版本更新时,只下载新版本与旧版本不同的文件部分,而不需要重新下载整个资源包。这样可以减少下载时间和网络流量,提高用户的更新速度和体验1.通过这种方式,用户只需要下载差异包中的变动部分,而不需要重新下载整个资源包。这样能够节省用户的流量消耗和下载时间,提高更新的速度和效率2.需要注意的是,增量更新的实现较为复杂,需要服务器端和客户端之间的协作。服务器端需要有生成差异包的功能,而客户端则需要能够正确地将差异包合并到旧版本资源包中。

2023-09-08 18:13:16 415 1

原创 [C#,Unity面试题](五)

从不同距离渲染对象时,使用的是质量不同的模型(LOD)和贴图(Mipmap)。ThreadPool是线程池,他是C#为线程实现的缓存池,主要用于减少线程的创建,减少GC触发。2.AssetBundle类中或Addressables类中的相关方法加载AB包中的资源。Thread是线程,可以使用他开启线程处理复杂逻辑,避免主线程卡顿。Task是任务,他是基于线程池的优化,让我们可以更方便的控制线程。在移动平台上(或配置较低的设备上)使用实时光源是非常消耗性能的。利用元组处理多返回值,或者临时数据的集合。

2023-09-06 19:09:02 185 1

原创 [C#,Unity面试题](四)

答案:闭包是指有权访问另一个函数作用域中的变量的函数所以闭包一般都是指的一个函数创建这种特殊闭包函数的方式往往是在一个函数中创建另一个函数。

2023-09-05 19:13:35 113

原创 Unity 的各种 Drawcall 优化的技术原理与优缺点以及使用的情况详解

Unity是目前游戏开发中最为流行的游戏引擎之一,而Drawcall优化是Unity游戏开发中一个非常重要的环节。在Unity中,Drawcall是指CPU将数据发送到GPU进行渲染的操作,因此优化Drawcall可以有效提高游戏的性能,本文将详细介绍Unity中的各种Drawcall优化技术原理、优缺点以及使用情况。

2023-09-05 09:37:23 375

原创 [C#,Unity面试题](三)

答案:1.什么是DrawCall?每次CPU准备渲染相关数据并通知GPU的过程称为一次DrawCall2.DrawCall为什么会影响游戏运行效率?如果DrawCall次数较高,意味着CPU会花费更多的时间准备渲染数据,这会进行更多的计算,进而影响游戏的运行效率3.如何减少DrawCall?2D和UI层面:打图集,并且注意面板中不同图集图片的层级不要穿插3D模型层面:利用动态批处理和静态批处理,尽量不使用实时光照和实时阴影等等。

2023-09-04 19:57:10 261 1

原创 [C#,Unity面试题]本期主要针对C#跟Unity基础(二)

答案:(1).堆上自定义类中声明的成员变量,无论什么类型,都会存储在堆上。类(引用类型)的实例本身存储在堆上,而成员变量也存储在该实例所指向的内存区域(堆上)(2).堆上在结构体变量中的引用类型成员实际上会存储在堆上。虽然结构体本身是值类型,存储在栈上,但是如果结构体的成员包含引用类型,那么引用类型的对象会存储在堆上,而结构体的实例内部会包含对这些堆上对象的引用。答案:托管内存:托管内存是由.NET运行时(CLR,Common Language Runtime)进行管理的内存。

2023-09-03 18:57:03 212

原创 [C#,Unity面试题]C#前三题是字节跳动面试问题 Unity主要是关于Shader的面试题(一)

2.Unity采用组件式设计,通过使用反射,可以将某些逻辑解耦,将组件的功能模块化,使得逻辑更加灵活和可复用,当触发一个生命周期,需要通知相应GameObject的所有组件,如果使用继承多态来实现,则所有组件都要派生自包含对应生命周期的基类,或者是筛选出派生自此基类的组件逐一通知。1.并非所有继承MonoBehaviour的类都需要使用所有声明周期函数,如果使用继承,就会有大量的空虚函数被调用,而使用反射,有哪些生命周期就调用哪些,并且反射还可以调用私有方法。这种情况下我们就需要显示的手动释放这些资源了。

2023-09-01 18:25:09 609 1

原创 [Unity]红警选中效果,并显示选中特效

需要注意的是: 因为框选框需要4个顶点 所以LineRenderer里面手动设置为4 可以自行设置线的粗细 建议0.01。Physics.OverlapBox是一个用于检测立方体范围内的物体碰撞的函数。它可以帮助您判断是否有其他物体与指定的立方体范围相交。里面调用了人物脚本的设置特效函数 这个脚本就不展示啦,随便写一下就可以。函数的返回值是一个Collider数组,包含与指定立方体范围碰撞的所有物体。这里是绘制选中框的一个效果,具体看代码注释。注意: 到这里只是写了绘制框选框的代码。

2023-08-31 20:49:58 346 1

原创 委托与事件

使用过C或者C++的读者对指针是什么应该很清楚,指针是一个需要谨慎对待的东西,它不仅可以指向变量的地址,还能指向函数的地址,本质上,它是指向内存的地址。 在C#中万物皆是类,我们使用C#的大部分时间里都没有指针的身影,最多也只是引用,因为指针被封装在内部函数中了,不过回调函数依然存在,于是C#多了一个委托(delegate)的概念,所有函数指针功能都以委托的方式来完成,委托可以视为一个更高级的函数指针,它不仅能把地址指向另一个函数,还能传参数,获得返回值等多个信息,系统还会为委托对象自动生成同步,异步的调

2023-08-29 10:19:48 31

原创 Unity,C#,模拟面试题以及答案

它将 C# 或其他脚本语言编写的脚本代码编译为 C++ 代码,并生成可在目标平台上直接运行的可执行文件。IL2CPP 提供了更好的性能和内存效率,同时还增加了游戏的安全性和发布的灵活性。Mono: Mono 是一个开源的跨平台实现 .NET Framework 的项目。Mono 提供了在不同平台上运行 C# 程序的能力,并为 Unity 游戏引擎提供了脚本编译器和运行库。总结: 从 Unity 2018.1 版本开始,IL2CPP 成为 Unity 的默认脚本编译器和运行时环境。对于我们的意义是什么?

2023-08-25 09:03:57 136

原创 Unity绘制显示技能检测范围(扇形,圆形,矩形)

其中 positionCount 之所以需要+2 是因为除了我们需要的角度外 还需要额外绘制2条回归线所以直接通过代码的方式设置第一条和最后一条的位置为自身.循环则为绘制角度.2.如果需要再update中进行绘制 不推荐持续设置positionCount 可以先再调用之前进行对应的长度修改。矩形因为点的数量是固定的所以直接写5 然后根据自身的位置和角度去修改朝向.长和宽则直接固定。圆形可以看作一个360度的扇形去进行绘制 不过不需要回归线所以去除额外多加的2条。

2023-08-23 08:15:04 1123 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除