算法复杂度

2022-08-05
阅读 1 分钟
1.9k
评估一个算法的性能主要依据其时间复杂度和空间复杂度来确定。时间复杂度是指该算法运行的时间长短。空间复杂度是指该算法运行占用的内存大小。复杂度越低越好,越短小越好。时间比空间更重要。
封面图

Unity C# 反射性能优化

2022-06-13
阅读 25 分钟
5.1k
1.反射性能很差,比直接调用慢成百上千倍。2.反射性能优化的思路是绕开反射。3.反射性能优化方式有:字典缓存(Dictionary Cache)、委托(Delegate.CreateDelegate)、Expression.Lamda、IL.Emit、指针(IntPtr) 等各种方式。4.性能排名:直接调用 > (IL.Emit == Expression) > 委托 > 指针 > 反射5.通用性排名...

C# float浮点数与二进制相互转换(IEEE754)

2022-04-27
阅读 4 分钟
10.4k
这个值是怎么来的呢?IEEE754是一个关于浮点数的标准,它把浮点数分成3个部分:Sign(符号)|Exponent(指数)|Mantissa(尾数)

C# sizeof 计算规则

2022-04-27
阅读 7 分钟
3k
sizeof 运算符返回给定类型的变量所占用的字节数。 sizeof 运算符的参数必须是一个sizeof的名称,或是一个限定为非托管类型的类型参数。

Unity C#热更新方案 ILRuntime学习笔记(二) 代码跨域调用

2020-07-19
阅读 6 分钟
8.4k
一、主工程调用Hotfix代码 假设Hotfix工程里有一个Test类,该如何调用该类的方法呢? {代码...} 1.调用静态方法 {代码...} 2.调用实例方法 {代码...} 二、Hotfix调用主工程代码 Hotfix调用主工程代码直接调用即可,无需特别步骤。 {代码...} 三、Hotfix响应MonoBehaviour事件 Hotfix响应MonoBehaviour中的事件,可以用代...

Unity C#热更新方案 ILRuntime学习笔记(一) Hello World

2020-07-11
阅读 10 分钟
17.6k
问:什么是ILRuntime?答:ILRuntime是一个C#热更新方案。ILRuntime项目为基于C#的平台(例如Unity)提供了一个纯C#实现,快速、方便且可靠的IL运行时,使得能够在不支持JIT的硬件环境(如iOS)能够实现代码的热更新

LiteByte教程

2019-12-18
阅读 5 分钟
3k
转载请标明原文地址:[链接]简介LiteByte是一种轻量级的二进制数据交换格式。体积小巧、简单易用是设计目标。主要用于解决前后台数据传输的问题。作者:冰封百度(ZhangYu)设计的灵感来源于C# struct内存对齐后的紧凑格式。Gitee:[链接]特点1.紧凑的二进制数据格式,支持变长整型,数据量小。2.用类定义对象结构,使用方便...

Lua 开发环境搭建教程

2019-09-13
阅读 2 分钟
10k
记录用VS Code搭建Lua开发环境的步骤 一.下载安装 1.下载安装 VS Code(开发工具):地址:[链接] 2.安装插件 Chinese(简体中文语言包) 3.安装插件 Lua Debug(调试工具):作者:actboy168 免费 这个是Lua SDK + 断点调试工具 4.安装插件 luaide(代码辅助):作者:kangping 收费 注册免费使用7天 这个是代码辅助工具 + 游戏引擎...

Unity FPS帧率计算

2019-08-23
阅读 1 分钟
7.2k
FPS帧率统计是性能测试常用组件之一,下面分享一个简单的FPS统计脚本。 1.效果图 2.代码FPSUI.cs {代码...}

Unity C# 字符串操作API效率比较

2019-07-29
阅读 7 分钟
5.3k
先说测试结论:操作char比string快。string.Equals()比==快。IndexOf()比StartWith()快很多。LastIndexOf()比EndWith()快很多。操作字符串时,逐个字符比较,效率会提高很多。

Unity Protobuf和JSON对比

2019-07-25
阅读 4 分钟
6.4k
在Unity中使用Protobuf两种方式:1.导入Unity专用的Protobuf-net资源包,用C#代码定义对象。2.配置.net的Protobuf环境,用原生的.proto文件定义对象。

Unity 性能优化经验整理

2019-07-23
阅读 8 分钟
17.9k
优化思路 个人优化原则: 三原则: 注意细节、注意细节、注意细节! 优化手段: 1.善于使用工具2.减少总量3.空间、时间互换4.由浅入深 1.善于使用工具:一定要善于使用工具来分析性能问题(Profiler),先找出性能瓶颈再做优化。 2.减少总量:尽量减少性能消耗的总量(内存和CPU占用)。 3.空间、时间互换:CPU和GPU可以互换...

Unity 删除Animator中无效的Animation引用

2019-07-17
阅读 4 分钟
6.9k
导出Animator时,发现Animator中关联了很多没用的Animation文件。这些无效的Animation都是以前曾经使用过的动画文件。

Unity JSON性能对比(LitJson、NewtonsoftJson、SimpleJSON)

2019-07-11
阅读 3 分钟
13.6k
Unity中Json库性能对比测试 类库大小对比: 类库 文件类型 大小 NewtonsoftJson .dll 353KB LitJson .dll 56KB SimpleJSON .cs 68KB 解析时间对比:执行次数:10000次 测试方法 NewtonsoftJson LitJson SimpleJSON 测试1 114ms 158ms 52ms 测试2 136ms 288ms 126ms 测试3 263ms 542ms 169ms 测试4 333ms 747ms 200ms 测试...

Unity 加载AssetBundle

2019-07-03
阅读 6 分钟
11.4k
(官方已淘汰WWW类,如果是5.x之前的老版本工程可以继续使用WWW,如果是5.x之后的工程请使用UnityWebRequest类替代)Unty4.x - 5.x 用WWW类加载WWW.LoadFromCacheOrDownload() 通过Url和版本号自动缓存资源包 注意必须是资源包 不能是其他格式 不能加密

Unity GPU Instance(大量相同网格物体合批)

2019-06-22
阅读 6 分钟
15.1k
在Unity中 同网格同材质的模型是可以合批的动态批处理和静态批处理都可以合批 但是都有其限制动态批处理有顶点数不能超过900的限制 只适合比较简单的模型静态批处理的物体不能移动、旋转、缩放 并且需要消耗额外的内存来存储合并后的物体

Unity 模型命名规范和导入设置

2019-05-28
阅读 3 分钟
10.3k
2.网格和动画分离:一个带网格不带动画的模型文件和其余带动画不带网格的模型文件因为可以共用同一个网格和骨骼,分离网格和模型以后 减小了体积和内存 优化了性能同时也方便单独修改动画

C# 十进制转二进制

2019-04-19
阅读 3 分钟
5.2k
转载请标明原文地址:[链接] 十进制转二进制:正整数:除2取余倒序负整数:正整数取反+1 {代码...} 正整数转二进制:除2取余倒序举例: {代码...} 负整数转二进制:正整数转二进制 取反 + 1举例: {代码...} ??!!为什么负整数二进制要取反再加1?为什么不能直接用符号位+正整数二进制表示?因为计算机只有加法没有减...

Unity C# for和foreach效率比较

2019-04-13
阅读 3 分钟
11.5k
先说测试结果:for比foreach快,for循环不额外定义length似乎更快(有网友评论说我的结论有些问题。foreach和for的效率是一样的。感谢评论,我觉得有道理,于是我在循环内加了运行代码,重新测了一下,结果没变,但是发现点新东西)

Unity C# Mathf.Abs()取绝对值性能测试

2019-04-04
阅读 2 分钟
7.5k
之前有人提到过取绝对值时 直接写三目运算符比用Mathf.Abs()效率高 没觉得能高太多今天测了一下 真是不测不知道 一测吓一跳 直接写三目运算符比Mathf.Abs()效率高数倍

Unity趟坑问题汇总

2019-03-21
阅读 3 分钟
7k
在使用Unity引擎开发的过程中总会遇到各种各样的问题,有些问题很坑,只有遇到的才懂,为了避免以后自己再被同一块石头绊倒,特意在此做个整理,希望能给大家节省一些时间,有同样遇到坑的小伙伴也可以把问题或解决方法写在楼下,以供其他小伙伴参考。趟过的坑会持续整理。

Unity C# 3D世界坐标转2D屏幕坐标

2019-03-20
阅读 1 分钟
8.8k
让2D UI跟随3D物体移动或指示3D物体的位置该怎么做呢? 关键代码: {代码...} 测试脚本:Position3DTo2DTest.cs {代码...} 实现效果:血条UI悬浮在人物头顶 当摄像机旋转角度时 重新定位

Unity C# Event 自定义事件系统

2019-03-05
阅读 6 分钟
12.6k
在Unity中 用C#实现自定义的事件系统参考自《Advanced C# Messenger》 实现一个高效的,独立的,可复用的事件系统。这种方式实现的事件,GC会很低,值类型0GC。

Unity 计算导弹抛物线弹道和转向

2019-02-28
阅读 6 分钟
14.6k
在三维空间中,利用抛物线公式计算弹道,得到一个发射初速度,让导弹打击到指定地点效果图: 测试脚本:通过Height调整导弹的飞行高度通过Gravity调整导弹的飞行速度 代码实现 关键代码: {代码...} 代码封装: {代码...} 测试代码: {代码...}

Unity C# 打包AssetBundle与场景

2019-02-27
阅读 4 分钟
11.6k
Unity2018已经把打包过程简化很多了我们只需要关心1个API:1.BuildPipline.BuildAssetBundles() 打包AssetBundle2.BuildPipline.BuildPlayer() 打包场景 (场景可以打包进AssetBundle里动态加载 所以不推荐用这个API了)

Unity性能优化之CPU-解决LogStringToConsole占用过高

2018-10-09
阅读 1 分钟
12k
在优化数年前老游戏项目的性能时发现CPU占用过高,调用性能分析器Profiler发现是脚本的问题。最后问题定位到LogStringToConsole这里了,可查看了代码,既没有Log也没有print输出任何字符,Console控制台也没有输出任何消息。这就很奇怪了,这个LogStringToConsole占用CPU过高究竟是什么导致的?百度了一下相关信息,国外...

Unity官方中文版(有生之年终于等到了)

2018-10-08
阅读 2 分钟
22.8k
安装步骤:1.下载并安装UnityHub 登录账号并激活。(似乎国内连国外网络不是很好,这一步卡了好久,反复激活了很多次才成功)Unity官网:[链接]Windows: [链接]Mac: [链接]

Unity中Android开发环境搭建配置教程

2018-07-10
阅读 4 分钟
17.6k
1.下载安装Unity安卓支持插件用Unity下载助手下载安卓支持插件UnitySetup-Android-Support-for-Editor.exe并安装。

Unity脚本生成插件:Script Create Dialog

2018-07-09
阅读 7 分钟
3.9k
最近写代码又犯懒了...感觉每次新建脚本都要写一堆简单重复的东西好无聊,所以搜索了一下有没有自动生成脚本的插件。结果还真被我发现了,官方在N久之前就制作了自动生成脚本的插件[Script Create Dialog],大概是名字起的和脚本生成器相差太多,现在的开发工具又太强大,所以被埋没了。所支持的Unity版本 3.4.2及以上,...

Unity相机截图

2018-07-06
阅读 5 分钟
5k
最近做项目的时候需要在游戏里截一张高清截图,研究了一下写成脚本,方便以后使用。脚本可以自定义分辨率,用相机截高清截图。可以用代码动态截图,也可以在编辑模式下截图。注意截图宽高比要正确,宽高比不正确时可能会出问题。