自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 资源 (2)
  • 收藏
  • 关注

原创 Unity性能优化 - 总篇章

本篇章介绍了优化策略,常见的优化模块,优化方案以及优化工具,文章连载中,请持续关注

2023-03-14 14:37:26 1293

原创 Unity性能优化 - 内存篇

本篇文章主要内容摘自UWA的《性能优化,进无止境-内存篇》。地址如下:性能优化,进无止境-内存篇(上)性能优化,进无止境---内存篇(下)本篇主旨是总结两篇内容的重点,细节还请在作者文章查看。内存优化主要关注点:1.资源内存占用;2.引擎模块自身内存占用;3.托管堆内存占用。4.内存泄露。5.无效的Mono堆内存开销。6.资源冗余。一、资源内存占用:资源的内存占用往往占据了总体内存的70%以上。因此,资源使用是否恰当直接决定了项目的内存占用情况。资源主要可分为如下几种:

2020-08-09 00:04:27 4237

原创 Unity性能优化 - 动态图集

Unity 动态图集是 Unity 引擎中用于处理游戏纹理优化的一种技术。本文介绍了什么是动态图集,动态图集的优缺点,以及提供了一套完整的代码供大家参考。

2023-04-07 18:24:25 3981

原创 Unity性能优化 - 脚本篇

Unity性能优化 - 脚本篇。本文主要介绍了什么是脚本性能优化,都有哪些常见的优化方案和一些优化方案细节,以及一些优化方案的优缺点

2023-03-23 15:48:19 1551

原创 Unity性能优化 - Draw Call篇

本文主要针对Draw Call优化进行讲解,其中包含整体优化和细节优化,以及优化的优缺点,持续更新中

2023-03-14 16:37:19 2625

原创 Unity性能优化 - Overdraw篇

Unity性能优化 - Overdraw篇。本文介绍了什么是overdraw以及对应的优化方案,包含整体优化和具体优化

2023-03-09 17:54:09 8771 2

原创 Unity Android 加载StreamingAssets路径下资源

Unity Android 加载StreamingAssets路径下资源

2022-06-28 16:21:02 6670

原创 Unity 批量修改资源压缩方式(Texture)

Unity 批量修改资源压缩方式(Texture)

2022-06-21 14:07:58 1858

原创 Lua 时间的一些计算

备注: 返回秒,根据需求可以自行换算

2022-06-09 17:29:35 816

原创 Unity AssetBundle 资源加载

AssetBundle常见的加载方式(2018.4)AssetBundle.LoadFromFileAssetBundle.LoadFromFileAsyncAssetBundle.LoadFromMemoryAssetBundle.LoadFromMemoryAsyncAssetBundle.LoadFromStreamAssetBundle.LoadFromStreamAsync官方API链接LoadFromFile:从硬盘的文件中加载一个AssetBundle,如果AB包

2021-09-03 13:17:39 1541 3

原创 电脑缓存清理

@echo offecho 正在清除系统垃圾文件,请稍等。。。。。。del /f /s /q %systemdrive%\*.tmpdel /f /s /q %systemdrive%\*._mpdel /f /s /q %systemdrive%\*.logdel /f /s /q %systemdrive%\*.giddel /f /s /q %systemdrive%\*.chkdel /f /s /q %systemdrive%\*.olddel /f /s /q .

2021-08-18 14:19:49 342

原创 通过伪随机数实现游戏中的随机

一、什么是伪随机数:伪随机数是用确定性的算法计算出来自[0,1]均匀分布的随机数序列。并不真正的随机,但具有类似于随机数的统计特征,如均匀性、独立性等。在计算伪随机数时,若使用的初值(种子)不变,那么伪随机数的数序也不变。二、为什么要使用伪随机数:当网络游戏需要通过随机数来播放随机效果时,如果使用真的随机数,则会出现不同客户端随机效果不一样的问题。那么这个时候就需要伪随机数来实现随机效果。三、直接上代码: private uint m_seed = 0; /// &lt

2021-08-05 11:44:21 835

原创 UnityPackage安装失败或者无法安装快速解决方案

问题原因:项目中更新了UnityPackage,更新后卡死在UnityPackageManager界面。如图:该阶段就是在更新package,但是因为某些原因,导致无法下载或者下载失败。下载失败或者无法下载的原因暂且未查询到,原因未知。(时间问题,懒得查了)解决方案:通过离线下载或者copy方式,将需要更新的package下载到本地,放到unity的package缓存目录。目录路径如下:C:\Users\Administrator\AppData\Local\Unity\ca

2021-07-03 14:18:45 4815 1

原创 Unity Android 真机调试 + 夜神模拟器调试 + ADB Logcat

Unity Android 真机调试 + 夜神模拟器调试

2021-06-01 13:10:46 4474 2

原创 Unity+JetBrainsRider2020+EmmyLua调试Lua(XLua)

JetBrainsRider2020安装EmmyLua1.主界面安装插件EmmyLuaConfigure - 插件 - EmmyLua2.设置界面安装EmmyLua文件 - 设置 - 插件 -EmmyLua添加JetBrainsRider调试器按照上图添加调试器,复制代码到lua脚本内...

2021-05-21 16:40:05 1814 3

原创 C#预处理器指令

1. #define #undef#define UNITY_DEBUG它告诉编译器存在给定名称的符号,在本例中是UNITY_DEBUG。#undef UNITY_DEBUG正好相反——它删除符号的定义∶备注:必须把#define 和#undef命令放在C#源文件的开头位置,在声明要编译的任何对象的代码之前。(using 前)...

2020-11-30 11:21:05 191

原创 ExecuteInEditMode-EditMode下执行脚本

ExecuteInEditMode属性的作用是在EditMode下也可以执行脚本。在Unity默认情况下,脚本只有在运行的时候才被执行。但加上ExecuteInEditMode属性后,不运行程序,也能执行脚本。ExecuteInEditMode与PlayMode不同的是,函数并不会不停的执行。调用规则如下:Awake: 加载时调用。Start: 第一次激活时调用。Update: 只有当场景中的某个物体发生变化时,才调用。OnGUI: 当GameView接收到一

2020-11-20 11:15:31 524

原创 Unity编辑器扩展-常用接口

Unity编辑器扩展-常用接口和常用组件

2020-11-19 16:06:07 382

原创 使用adb - logcat输出Android log

ADB部分命令:adb devices 获取设备adb logcat -c 执行命令,清空日志信息adb logcat > logcat.log 将日志信息输出到指定文件中(该文件不存在,则会新建)adb logcat --help 查看 logcat 命令的帮助信息adb logcat 命令格式:adb logcat [选项] [过滤项],其中 选项 和 过滤项 在 中括号 [] 中, 说明这是可选的;(1) 选项解析-- "-s"选项 : 设置输出.

2020-10-26 20:30:25 431

原创 C#-List中Sort排序的使用

结构体代码:struct MyStruct{ public int id; public int quality; public override string ToString() { return string.Format(" (id:{0};quality:{1})", id, quality); }}排序写法:var list = CreatValues();// 该排序规则是quality在前,quality相等,i

2020-09-09 10:15:24 474

原创 Unity自动化打包脚本设置

代码如下:using UnityEditor;using UnityEngine;public class PackageTools{ [MenuItem("Tools/PerformBuild")] public static void PerformBuild() { // 设置签名 PlayerSettings.Android.keystoreName = "完整路径(包含文件后缀)"; PlayerSettings

2020-09-08 22:50:43 1133

原创 控制台应用修改文件内容

代码如下:if (!File.Exists(filePath)){ return;}var lines = File.ReadAllLines(filePath);for (int i = 0; i < lines.Length; i++){ if (lines[i].Contains(oldValue)) { lines[i] = lines[i].Replace(oldValue, newValue); }}File.Wri.

2020-09-08 22:30:48 395

原创 面向对象思想和优点

百度百科链接:Link面向对象的三大特性:1、封装隐藏对象的属性和实现细节,仅对外提供公共访问方式,将变化隔离,便于使用,提高复用性和安全性。2、继承提高代码复用性;继承是多态的前提。3、多态父类或接口定义的引用变量可以指向子类或具体实现类的实例对象。提高了程序的拓展性。五大基本原则:1、单一职责原则SRP(Single Responsibility Principle)类的功能要单一,不能包罗万象,跟杂货铺似的。2、开放封闭原则OCP(Open-Close.

2020-08-28 22:25:29 310

原创 数据结构之二叉树的四种遍历

一、 四种遍历规则和结果:先序遍历:遍历顺序规则为【根左右】先序遍历结果:A B D H I E J C F G中序遍历:遍历顺序规则为【左根右】中序遍历结果 : H D I J E B A F C G后序遍历:遍历顺序规则为【左右根】后序遍历结果 :H I D J E B F G C A层序遍历:一层一层从左往右遍历层序遍历结果 :A B C D E F G H I J二、代码逻辑:...

2020-08-27 22:45:11 878

原创 递归函数的优缺点

优点:代码简洁。 易于理解缺点:1、时间和空间的消耗比较大:递归由于是函数调用自身,而函数调用是消耗时间和空间的。每一次函数调用,都需要在内存栈中分配空间以保存参数,返回值和临时变量。而往栈中压入和弹出数据也都需要时间,所以降低了效率。2、重复计算:递归中又很多计算都是重复的,递归的本质时把一个问题分解成两个或多个问题,多个问题存在重叠的部分,即存在重复计算。如斐波那契数列的递归实现。3、栈溢出:递归可能存在栈溢出,每次调用时都会在内存栈中分配空间。而栈空间的容量是有

2020-08-17 16:36:28 3063

原创 数据结构之排序

常见算法排序: 排序算法 平均时间复杂度 空间复杂度 算法稳定性 冒泡排序 O(n²) 稳定排序算法 选择排序 O(n²) 不稳定的排序方法 插入排序 O(n²) O(1) ..

2020-08-10 23:31:04 204

原创 Unity性能优化之CPU篇

文章主要参考自:性能优化,永无止境---CPU篇CPU方面的性能主要开销:1、引擎模块性能开销;2、自身代码性能开销;引擎模块性能开销:渲染模块、动画模块、物理模块、UI模块、粒子系统、加载模块和GC调用等等。渲染模块:渲染模块可以说是任何游戏中最为消耗CPU性能的引擎模块,因为几乎所有的游戏都离不开场景、物体和特效的渲染。对于渲染模块的优化,主要从以下两个方面入手:1、降低Draw Call;2、简化资源;降低Draw Call:但是,需要注意的是,游戏性能并非D

2020-08-09 15:12:22 778

原创 Unity性能优化大合集

备注:该文章只是用来备注地址使用。具体文章请参考UWA优化篇:https://blog.uwa4d.com/archives/allinone.html

2020-08-08 15:50:57 219

原创 C#-部分关键字的作用

sealed通过在类定义前面放置关键字sealed,可以将类声明为密封类。 当一个类被声明为sealed时,它不能被继承。 抽象类不能被声明为 sealed。internal同一个程序集的对象可以访问; protected internal:访问限于当前程序集或派生自包含类的类型。PartialPartial关键词定义的类可以在多个地方被定义,最后编译的时候会被当作一个类来处理。...

2020-08-05 18:27:46 160

原创 Unity - 纹理压缩

一、为何要进行纹理压缩:纹理显示到屏幕上,需要CPU和GPU协作完成。CPU对资源进行计算解码,然后将纹理数据传输给GPU。GPU通过CPU的数据,将数据渲染到缓冲区。 纹理压缩减少了资源在CPU中进行解压缩的过程。 纹理压缩减小了包体大小,减少了数据量级,减轻了带宽计算的压力。 纹理压缩时内存的使用效率更高。二、常见的纹理压缩格式:DXT格式是Nvidia Tegra提供的,分为DXT1-DXT5这五个级别,Terga支持的实际上是DXT1、DXT3和DXT5。 ETC是安卓原生支持的,

2020-08-03 15:11:53 994

原创 字符串

String:CLR可通过一个String对象共享多个完全一致的String内容。这样能减少系统中的字符串数量———从而节省内存——这就是所谓的"字符串留用"((string inteming)°。MSDN文档将interming翻译成"拘留",专门供字符串留用的表称为"拘留池"。本书采用"留用"这一译法。这个技术的详情将在本章后面详细解释。字符串池:编译源代码时,编译器必须处理每个字面值(literal)字符串,并在托管模块的元数据中嵌入。同一个字符串在源代码中多次出现,把它们都嵌入.

2020-08-01 20:28:39 201

原创 C#算法系列(1)——二分查找、插值查找、斐波那契查找

二分查找:二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。算法要求:1.必须采用顺序存储结构 2.必须按关键字大小有序排列。时间复杂度为:O(log n)空间复杂度:O(1) /// <summary> /// 二分查找 /// </summary> /// <param name="nums"></..

2020-07-30 20:13:27 261

原创 Unity-string拼接0GC解决方案

首先在网上了解了几种不同的解决方案:1.zstring完美实现0GC的解决方案。并且附上了PPT地址和GitHub地址。博客链接:https://blog.csdn.net/qqqqqq8633542/article/details/80654218PPT链接:https://coh5.cn/p/1ace6338.htmlGitHub链接:https://github.com/871041532/zstring关于zstring目前存在的问题,GitHub中有说明,大家可以看作者的博客。

2020-07-23 15:06:06 1541 4

原创 Unity UGUI源码调试与修改

关于UGUI就不过多介绍了,那么直接进入主题:1.UGUI源码地址如下:https://bitbucket.org/Unity-Technologies/ui/downloads?tab=tags2.找到对应版本的UGUI,然后下载zip或者其他类型的的压缩包。根据自己的喜好解压到指定目录。3.使用文本打开README.md文件,获取UGUI文件路径。本人的版本是Windows版本,所以路径如下:Data\UnityExtensions\Unity\GUISystem\{UNITY_VE

2020-07-22 15:54:23 932

原创 Unity中屏幕坐标、世界坐标的相互转换

首先看一下unity提供的接口//1.屏幕转世界坐标Vector3 Camera.main.ScreenToWorldPoint(new Vector3(screenPos.x , screenPos.y , z));//2.世界转屏幕坐标Vector3 Camera.main.WorldToScreenPoint(new Vector3(worldPos.x , worldPos.y , worldPos.z));//3.世界转视口坐标Vector3 Camera.main.WorldTo

2020-07-06 14:33:31 701

原创 UGUI字体加粗后Android真机文字重叠

项目Android版本开发过程中,遇到部分字体重叠。通过排查定位发现所有出现重叠问题的都是被加粗的字体。UWA上的问答链接:https://answer.uwa4d.com/question/5bc59e7d5707da4d53bc3633解决方案:1. 使用粗体字体代替UGUI的字体加粗。2. 使用描边或者其他效果实现加粗效果。...

2020-05-28 20:12:10 320

原创 bat中命令行的简单应用

1.获取与输出日期@echo offecho %date%echo %time%echo %date% %time%set TheDate=%date:/=.%echo TheDate:%TheDate%set TheTime=%time:~0,8%echo %TheDate% %TheTime%set TheDate=%TheDate:~0,10%set TheTime=...

2020-04-29 12:05:22 830

原创 FlatBuffers-入门篇-简单使用

1.编写FlatBuffers的scheme文件。新建一个Monster.fbs文件。各式内容如下:namespace MyGame.Sample; struct Vec3 { x:float; y:float; z:float;}table Monster { pos:Vec3; // Struct. hp:short = 100; name:stri...

2020-04-22 23:05:29 965

原创 Tool - 针对目标文件,一键添加内容

using System;using System.IO;using System.Linq;namespace ConsoleApp1{ class Program { private static string _fileName = "AssemblyInfo.cs"; private static string _strPath ...

2020-04-22 22:29:12 171

原创 Unity - 提升导入DLL解析速度

在开发时,采取Code和Project分离开发。每次重新编译导入dll都需要等待很长时间。那么为了提升dll的解析速度,可以采取下面的方式。AssemblyInfo.cs脚本中添加下面的设置。[assembly: UnityEngine.UnityAPICompatibilityVersion("2017.4.5f1")]unity版本要根据自己的项目选择。unity对应的A...

2020-04-22 20:16:54 503

Unity性能优化 - 动态图集 工程

package包含DynamicAtlasManager.cs、DynamicAtlasSprite.cs和DynamicAtlasTest.cs等资源的Unity动态图集的package包的描述: 1. DynamicAtlasManager脚本:这个脚本文件是实现动态图集的核心脚本,其中包含图集合并、图集更新、动态实例化等重要功能代码。开发者可以修改该脚本对图集生成逻辑进行优化,并且该脚本可扩展性较好,可以方便地集成到现有游戏引擎中。 2. DynamicAtlasSprite脚本:这个脚本文件用于跟踪记录。 3. DynamicAtlasTest脚本:这个脚本文件是用于测试动态图集优化效果的脚本,在场景加载时会自动执行。

2023-04-14

字符串使用情况查询,类型和内容可选

如题,可以通过该工具查找指定能容,各种文件类型都可以,根据需求选择,快速查找内容,提升工作效率

2022-04-02

nuget.exe文件资源

用来进行Nuget还原操作,该资源主要是为了防止本地资源删除找不到,主要是个人使用。大家可以在网上自己找免费版本的下载哈。

2020-08-18

空空如也

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

TA关注的人

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