Unity
文章平均质量分 84
金朝
活到老,学到老.
展开
-
Unity Memory Profiler从入门到精通
前言:Unity Memory Profiler主要用来查看托管内存和本机内存的详细分配情况。它通过捕获、检查、比对内存快照的方式来检测内存泄漏和内存碎片。本篇文章中使用的版本是0.2.10版本。打开偏好设置:点击【Preferences -> Analysis -> MemoryProfiler】菜单项来打开偏好设置。如下图所示:其中,常用的参数设置如下所示:1.Memory Snapshot Storage Path:设置保存内存快照文件的相对路径(必须以./或者…/开头)。当路径非原创 2022-05-08 21:50:36 · 12682 阅读 · 0 评论 -
Unity Odin从入门到精通(九):验证器详解
然后将自定义的全局类型验证器类型作为参数传递给注册验证器类型,进而让该自定义的全局类型验证器类型生效。然后工程验证器窗口的验证配置文件列表(Validation Profiles)会自动同步管理验证配置文件界面中的主验证配置文件列表。然后工程验证器窗口的验证配置文件列表(Validation Profiles)会自动同步管理验证配置文件界面中的主验证配置文件列表。然后工程验证器窗口的验证配置文件列表(Validation Profiles)会自动同步管理验证配置文件界面中的主验证配置文件列表。...原创 2022-07-22 17:24:13 · 1768 阅读 · 0 评论 -
Unity Odin从入门到精通(八):自定义定位器
然后重写自定义定制特性处理器类型的ProcessChildMemberAttributes函数来对检视面板父属性下面的检视面板子属性使用定制特性列表进行扩展绘制。5.6.重写自定义定制特性处理器定位器类型的GetChildProcessors函数来对使用该自定义定制特性处理器定位器类型的检视面板父属性下面的检视面板子属性进行扩展绘制。5.5.重写自定义定制特性处理器定位器类型的GetSelfProcessors函数来对使用该自定义定制特性处理器定位器类型的检视面板属性进行扩展绘制。.........原创 2022-07-22 17:22:27 · 838 阅读 · 1 评论 -
Unity Odin从入门到精通(七):自定义解析器
**注意事项**:如下所示:1.自定义解析器主要用来扩展[自定义绘制器](https://blog.csdn.net/zjz520yy/article/details/125398881?spm=1001.2014.3001.5501)。2.解析字符串不仅可以是硬编码,而且还可以是以\$开头的成员引用或者以@开头的表达式。**命名值**:如下所示:1.命名值的类型为NamedValue。具有以下特性:1.1.主要作用:命名值是解析器的重要组成部分,用来表示解析字符串可以访问的上下文值。当解析字符原创 2022-07-22 17:20:50 · 666 阅读 · 0 评论 -
Unity Odin从入门到精通(六):自定义绘制器
自定义通用绘制器:可以使用PropertyTree类型来使用Odin绘制系统中的所有功能。使用流程如下所示:1.首先调用PropertyTree.Create函数来为指定的目标类型实例创建一个PropertyTree类型实例;然后调用PropertyTree类型实例的Draw函数来绘制关联的目标类型实例。参考代码如下所示:2.在调用PropertyTree.Create函数时,不仅可以指定OdinAttributeProcessorLocator类型实例来绘制目标类型实例当中的定制特性,而且还可以指定O原创 2022-06-22 22:36:01 · 2023 阅读 · 0 评论 -
Unity Odin从入门到精通(五):自定义处理器
然后将该自定义定制特性处理器类型的泛型参数设置为关联的自定义检视面板属性类型;10.当自定义定制特性处理器类型应用OdinDontRegisterAttribute定制特性时,虽然该自定义定制特性处理器类型不能直接处理关联的检视面板属性类型,但是可以使用定制特性处理器定位器类型来处理检视面板属性类型。5.6.重写自定义定制特性处理器定位器类型的GetChildProcessors函数来对使用该自定义定制特性处理器定位器类型的检视面板父属性下面的检视面板子属性进行扩展绘制。......原创 2022-07-12 22:38:43 · 1298 阅读 · 0 评论 -
Unity Odin从入门到精通(四):序列化调试器详解
什么是序列化和反序列化:序列化和反序列化主要用来解决对象的传输问题。其中序列化用来将对象转换成二进制流;反序列化用来将二进制流转换成对象。Unity序列化:Unity序列化器的实现十分简单,目的是为了非常快速的进行序列化和反序列化操作。具有以下特性:1.可以被序列化的类型如下所示:1.1.某些Unity内置类型。如:Vector2、Vector3、Vector4、Rect、Quaternion、Matrix4x4、Color、Color32、LayerMask、AnimationCurve、Gradie原创 2022-03-27 14:43:19 · 3555 阅读 · 0 评论 -
Unity Odin从入门到精通(三):静态检查器详解
前言:开发者可以使用静态检查器来选择项目工程、Unity引擎、.Net框架中所有的类型,并查看其所有的静态成员。打开静态检查器:在Unity的菜单栏中选择【Tools -> Odin Inspector -> Static Inspector】菜单项来打开静态检查器。如下图所示:查看静态检查器的源码:首先在Rider当中切换到Assemblies视图。接着在该视图的列表当中选择Sirenix.OdinInspector.Editor程序集。然后从该程序集的列表当中选择Sirenix.Odi原创 2022-03-17 21:58:45 · 5432 阅读 · 0 评论 -
Unity Odin从入门到精通(二):创建编辑器窗口
前言:为了更加快速和高效的组织项目数据,开发者可以使用Odin来快速创建自定义编辑器窗口,以帮助组织项目数据。这就是Odin可以真正帮助提升工作流程的地方。原创 2021-10-15 21:07:54 · 5430 阅读 · 0 评论 -
Unity Odin从入门到精通(一):定制特性详解
前言:Odin是一款功能十分强大的Unity第三方插件,可以让程序员从繁琐的GUI开发中解放出来,从而大大提高开发效率。以下介绍的所有关于Odin的章节都是基于3.0.6个人版,读者可以根据自己实际需要进行选择性的阅览。AssetListAttribute:资源列表定制特性。具有以下特性:1.使用范围:可以用在列表、数组或者单个Unity类型的字段上。参考代码如下所示:[AssetList]public GameObject[] goArray;[AssetList]public List<原创 2021-08-28 21:15:01 · 7801 阅读 · 0 评论 -
Unity Timeline从入门到精通(六):扩展Timeline
声明:以Default Playables插件中提供的LightControl为例,讲解怎么去扩展Timeline。自定义行为:流程如下所示:1.创建一个继承自PlayableBehaviour类型的公有序列化行为类型LightControlBehaviour。2.在LightControlBehaviour类型中添加需要显示在检视面板中的公有属性。3.参考代码如下所示:using System;using UnityEngine;using UnityEngine.Playables;us原创 2021-06-28 20:50:23 · 3643 阅读 · 5 评论 -
Unity Timeline从入门到精通(五):检视面板详述
基础知识:如下所示:1.Timeline对象指的是Timeline资源、轨道或片段。2.如果所选片段的相同属性具有不同数值时,那么在检视面板中该数值将由短划线(“-”)来表示。3.Timeline中的时间单位要么为秒数(检视面板显示为s),要么为帧数(检视面板显示为f)。显示检视面板的方式:如下所示:1.首先选择单个Timeline对象;然后检视面板将显示所选Timeline对象的属性。以选择Timeline资源为例,检视面板的显示如图所示:2.首先选择多个Timeline对象,并且所有选择的T原创 2021-06-28 12:17:52 · 1638 阅读 · 3 评论 -
Unity Timeline从入门到精通(四):片段详述
基础知识:如下所示:1.片段的彩色强调线跟关联轨道的彩色强调线保持一致。片段导航的方式:如下所示:1.平移片段视图:按住鼠标中键并拖动或者按住Alt并拖动。2.水平缩放片段视图:滚动鼠标中键或者按住Alt并拖动鼠标右键。3.垂直缩放片段视图:按住Ctrl并滚动鼠标中键。4.聚焦全显示指定的片段:按住F。5.聚焦全显示所有的片段:按住A。添加片段的方式:参见Unity Timeline从入门到精通(三):轨道详述中介绍的每种轨道添加片段的方式。选择或者取消选择片段的方式:如下所示:1.单击原创 2021-06-23 18:23:39 · 1622 阅读 · 0 评论 -
Unity Timeline从入门到精通(三):轨道详述
轨道组(Track Group)和轨道子组(Track Sub Group):可以看做是空的文件夹。具有以下特性:1.添加轨道组的方式如下所示:1.1.单击添加轨道按钮,选择轨道组菜单项。1.2.鼠标右击轨道列表的空白区域,选择轨道组菜单项。2.一个轨道组或者轨道子组也可具有任意数量的轨道子组。添加轨道子组的方式如下所示:2.1.鼠标右击轨道组或者轨道子组的名称以外区域,选择轨道子组菜单项。2.2.点击轨道组或者轨道子组上的添加按钮,选择轨道子组菜单项。2.3.首先选择轨道组或者轨道子组;然后原创 2021-06-22 21:23:15 · 2543 阅读 · 0 评论 -
Unity Timeline从入门到精通(二):窗口详述
1.当Hierarchy窗口中没有选择任何游戏对象时,Timeline窗口会提示先选择一个Hierarchy窗口中的游戏对象。如图所示:2.当Hierarchy窗口中选择一个尚未关联到Timeline资源的游戏对象时,Timeline窗口会显示创建按钮。如图所示:3.锁按钮:当游戏对象不关联Timeline资源时,该按钮是不能进行操作的;否则当通过该按钮执行上锁操作时,Timeline窗口就一直显示该Timeline资源的设置,从而避免误操作。如图所示:4.轨道列表:用来展示Timeline资源原创 2021-06-22 12:13:37 · 1833 阅读 · 0 评论 -
Unity Timeline从入门到精通(一):理论概述
声明:本篇乃至后续的博客中采用的Unity版本为2020.3.11f1c1,Timeline版本为1.4.8。什么是Timeline:Timeline是Unity推出的一个资源整合工具。在该工具内部可以给不同的游戏对象建立不同类型的轨道。每个轨道可以单独的进行编辑,轨道内的不同资源可以有序的进行排列以及融合。Timeline的用途:Timeline可以用来创建电影内容、游戏序列、音频序列和复杂的粒子效果。Timeline的组成:Timeline是由Track(轨道)、Clip(片段:一个轨道中包含若干原创 2021-06-21 21:04:49 · 5919 阅读 · 0 评论 -
Entitas深入研究(3):多上下文系统
多上下文系统:也就是System监听的实体是多个不同类型的实体。此时可以编写个接口,该接口继承自多实体组件生产的接口以及IEntity。并且交给MultiReactiveSystem进行监听。具体的使用可以参照官方示例。...原创 2019-02-27 11:09:25 · 977 阅读 · 0 评论 -
Entitas深入研究(2):Unity交互
特殊说明:本文参照siki学院视频教程以及官方示例做的一个Entitas与Unity交互的例子,重点在于提供一种交互思维。浏览本教程前,请先浏览基础篇教程。设计大纲:本例子很简单,大概内容如下:1.鼠标左键按下时,在当前鼠标点击地方创建子弹对象。2.鼠标右键按下时,将创建的子弹对象对准当前鼠标点击方向移动到鼠标点击坐标的地方。编写代码:例子目录如下图所示:具体流程如下:1.在Sour...原创 2019-02-26 12:10:06 · 1979 阅读 · 1 评论 -
Entitas深入研究(1):环境安装和HelloWorld
前言:我是被守望先锋和unity推出的ecs编程模式给骗进来的。Entitas简介:Entitas是专门用于Unity引擎的一款超快速、轻量级实体组件系统(ECS)。它经过了精心设计,不仅可以快速访问组件,也可以在垃圾收集环境中以最佳方式工作。Entitas安装:安装流程如下:1.下载Entitas,这里我下载的是当前最新的1.12.2版本。2.创建一个空的Unity工程项目,并创建一个L...原创 2019-02-18 12:22:23 · 1952 阅读 · 1 评论 -
unity profiler深入学习3:cpu usage profiler
帧率越低,一帧渲染时间就越长,表现起来就越缓慢,卡顿,但是渲染次数降低,设备的发热量就会越小。相反帧率越高,一帧渲染时间就会越短,表现起来就会越流畅,但是渲染次数增大,设备的发热量就相对越大,所以一般游戏帧率控制在30帧,也就是每隔33毫秒渲染一次,流畅度和发热量相对都是最优。cpu usage profiler性能分析工具就是告诉我们每一帧各个任务执行耗费的时间,找出耗时任务并予以解决,达到在目标原创 2017-08-10 15:35:09 · 6736 阅读 · 0 评论 -
unity profiler深入学习1:android调试配置
Unity的Profiler工具默认支持三种模式: 1是编辑器模式,2是adb调试模式,3是局域网模式。编辑器模式启动步骤: 1.打开unity profiler窗口,并且通过Active Profiler下拉列表中的Editor选项来进行连接。局域网模式启用步骤: 1.获取手机当前网络的ip地址,或者流程如下:设置->关于手机->状态信息->ip地址。参考网址如下: http://ji原创 2017-08-08 20:43:33 · 3887 阅读 · 1 评论 -
unity profiler深入学习2:ios调试配置
Unity的Profiler工具默认支持三种模式: 1是编辑器模式,2是本地设备模式,3是局域网模式。编辑器模式启动步骤: 1.打开unity profiler窗口,并且通过Active Profiler下拉列表中的Editor选项来进行连接。局域网模式启用步骤: 1.获取手机当前网络的ip地址,或者流程如下:设置->Wi-Fi->状态信息->ip地址。参考网址如下: http:原创 2017-08-09 21:18:11 · 4299 阅读 · 4 评论 -
unity对象池方案
编写目的:频繁分配对象内存时会造成以下问题: 1.分配内存时系统自动调用GC.Collect来回收内存供分配的对象使用,如果回收的内存不能满足当前对象的内存大小,系统就会自动扩容并分配给当前对象,这样原先回收的内存空间就变成了碎片,从而造成分配的内存总量大于实际需要使用的内存总量。 2.GC.Collect调用时会遍历当前内存中所有对象,并对没有作用域而且引用计数为0的对象进行回收,这是一个耗时原创 2017-08-17 11:29:25 · 466 阅读 · 1 评论 -
UGUI 图集打包工具Sprite Packer
一.设计的目的:让开发者忘记图集的概念,使用小图去开发UI,unity自动会将这些小图按照tag名字打到图集里面去。二.启用的方式:在Edit->Project Settings->Editor->Sprite Packer->Mode中进行设置: 1.Disabled:不启用。 2.Enabled For Builds:打包发布时启用。 3.Always Enabled:一直启用,在开发和打原创 2017-07-25 17:23:12 · 18088 阅读 · 3 评论 -
资源依赖关系查询工具
编写目的:学习unity的sprite packer打图集后,发现unity没有提供一个工具去进行查找指定路径资源的双向引用(哪些资源引用的自己以及自己引用了哪些资源),也没有工具去替换指定资源的引用,这样当删除资源或者在工程里面移动资源(注意:在unity里面移动资源时,unity自动处理资源的引用关联),资源的引用就会丢失,从而要花费大量的人力去重新建立引用关联,而且还需要专人(美术或者开发)来原创 2017-08-01 16:37:56 · 2210 阅读 · 1 评论 -
unity profiler深入学习5:memory profiler
memory profiler性能分析工具就是告诉我们每一帧各个任务内存占用大小,找出内存占用大的任务并予以优化解决,保证游戏每帧内存占用维持在一定的区间值,避免游戏内存占用过大造成卡顿甚至闪退。Profile界面操作: 1.memory profiler主要包含了贴图,网格,材质,对象等模块,每一个模块对应一个不同的颜色,并在profiler视图中显示出来。 2.profiler视图中原创 2017-08-10 21:11:16 · 11753 阅读 · 0 评论 -
unity profiler深入学习6:rendering profiler
rendering profiler性能分析工具就是告诉我们每帧gpu渲染的相关参数信息,对一些渲染参数进行优化,达到优化gpu渲染的效率,进而降低gpu渲染时间。Profile界面操作: 1.rendering profiler主要包含了三角形,顶点,以及通道等模块,每一个模块对应一个不同的颜色,并在profiler视图中显示出来。 2.profiler视图中按照每一帧进行显示渲染参数信息原创 2017-08-11 11:51:46 · 2460 阅读 · 0 评论 -
unity 垃圾回收性能分析
垃圾回收低性能判定:最简单就是游戏运行卡顿,缓慢,也可以可以通过unity cpu usage profiler工具,查看garbage collector,并在层级视图中查看GC.Collect操作的时间消耗占当前帧的总cpu时间消耗比例,如果比例越大说明当前帧内GC.Collect越耗时,此时就必须加以优化GC操作,保持帧率的稳定。垃圾回收执行过程:轮询内存中所有对象,将不在作用域并且没有引用的原创 2017-08-11 20:54:16 · 2211 阅读 · 0 评论 -
unity profiler深入学习4:gpu usage profiler
gpu usage profiler性能分析工具就是告诉我们每一帧各个任务渲染耗费的时间,找出耗时久的任务予以解决。Profile界面操作: 1.gpu usage profiler主要包含了不透明对象,透明对象,深度阴影,光照等模块,每一个模块对应一个不同的颜色,并在profiler视图中显示出来。 2.profiler视图中按照每一帧进行显示时间消耗数据信息,选择某一帧时就会显示当前选择原创 2017-08-10 17:32:29 · 3117 阅读 · 0 评论 -
unity自动化构建工具和方法
前言:在游戏开发中经常需要一些自动化构建工具,比如打包工具,测试工具等等。以前我都是通过cmd运行python命令去完成自动化构建工作,但是这样就要跑到打包机上操作,过程麻烦,而且还不能跨部门打包。本篇博文就记录jenkins+python来实现自动构建的过程。集成Python:python的介绍我这里就不赘述了,可以去官网 查看。学习课程可以去菜鸟教程 查看。 1.python下载如图所示...原创 2018-07-30 09:08:48 · 5966 阅读 · 1 评论 -
扒一扒SRP
SRP由来:就是可编程渲染管线的缩写英文首单词。早期Unity只有一条默认的渲染管线,用来智能处理所有的渲染需求。但是有时候智能选择的东西也会不靠谱的选择不是最优的渲染处理方式,而且Unity维护团队也不想继续去填这个坑,那么索性就把这个坑交给使用者去填吧!!!SRP分类:Unity提供了供移动平台使用的轻量级渲染管线,供PC和主机平台使用的高清渲染管线以及一条默认的渲染管线。并且这些渲染管线都...原创 2019-01-21 12:25:14 · 810 阅读 · 0 评论 -
unity多线程方案
编写目的: unity官方是不推荐在unity里面使用多线程的,因为unity自身提出了协程的概念,但是unity中的协程并不是严格意义上面的多线程,它只是在特定时间段执行特定业务逻辑,达到多线程的功能,但是本质还是在主线程中完成的。当涉及复杂运算和复杂渲染等结合时就会出现卡顿等现象,所以我们可以另外开线程去执行负责业务逻辑,主线程负责渲染,这样就可以保证主线程的流畅性,提升游戏的体验感。核心思路:原创 2017-08-07 17:25:09 · 3037 阅读 · 0 评论