自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Rhett

不要浪费今天的时间去担忧明天,明天在哪里完全取决于今天的你在干什么,怎么干,干得怎样

  • 博客(55)
  • 资源 (2)
  • 收藏
  • 关注

原创 Unity-屏幕适配之自定义背景

先说一下我项目,我们的项目是一款回合制手游,但是由于在战斗中无法手动控制镜头的旋转,因而会在某种分辨率下,造成怪物在屏幕外,而造成选择不了怪物的情况,因而策划提出了屏幕适配的需求,但是还希望,屏幕的黑边可以用我们自己定义的背景图。 首先先看下普通屏幕适配适配,看下面代码:using UnityEngine;public class ScreenFitCamera : MonoBehaviour{ public static float MinRatio =...

2020-05-29 11:22:08 792

原创 Jenkins—安装(Windows)

一、首先去Jenkins官网下载安装包(windows的msi文件)二、windows安装步骤不再详细解释,这里只说遇到的一个问题由于我的电脑和微软的账号进行了绑定,平时都用的微软账号登录的电脑,但是在此处缺连不上本地服务,需要使用本地电脑的账户密码来登录,并且将该账户赋予权限,以下为步骤:1、win+r打开命令窗口,输入secpol.msc2、进入用户策略-用户权限分配3、找到作为服务登录,进入添加自己的账户即可...

2021-04-28 10:40:41 246

原创 Unity-Editor模式下已知localfileid下获取节点

经常的,我们可以通过节点的路径找到这个节点,但是存在一个问题,就是如果该路径下存在多个相同名字的节点的时候,我们不能区分但是使用哪一个,这时候GUID,FileID,LocalID就派上用场了查看GlobalObjectId使用说明上代码:GlobalObjectId rootObjId = GlobalObjectId.GetGlobalObjectIdSlow(rootObj);string GlobalObjectIdFormat = "GlobalObjectId_V1-{0}-{1

2021-04-02 15:30:16 788

原创 Git常用命令

克隆项目git cloneurl 初始化和更新子模块git submodule init和gitsubmoduleupdate命令 工程和子项目切换到dev分支:git checkout dev 工程更新:git pull --rebase origin dev 将工程推送到线上仓库:gitpushorigindev 保存当前工作现场:git stash 查看保存的工作现场:git stash list 恢复并删除工作现场...

2021-01-28 16:05:17 141

原创 AssetBundle——async texture load探索

最近项目中反馈在特定的某一个版本热更新完成后,会出现崩溃的情况,通过安卓模拟器查看启动log,发现出现了了一段崩溃日志,分配一大块内存,在网上搜了搜相关的解决方案:1、侑虎博客:https://answer.uwa4d.com/question/5c0f3ad928c4e32cba3193712、CSDN博友:https://blog.csdn.net/linxinfa/article/details/99859995在崩溃的前面发现这么一条日志:async texture load: fail

2020-12-28 15:14:49 823

原创 获取不同语言输入字符串的长度

由于我们的项目会在不同的国家区域上线,而项目中又会在某些输入的地方限制输入的字符串长度,比如一个中文字符占用两个字节,一个英文字符占用1个字节,不同的语言地区可能占用不同,那么如何获得不通字符的长度呢? 先给一个ASCII码例子配置(可以生成一个配置表): 中文字符:4E00-9FFFF占用两个字符 泰语:0E00-0E7F占用1个字符...... 判断字符代码:public int GetStrLength(string inp...

2020-07-19 17:42:01 573

原创 Unity-Android性能分析Profiler之自动连接手机

参看Unity-Android性能分析Profiler之前在用真机连接Unity-Profiler的时候一直都是自己手动在输入adb等,很是不方便,今天突然想起为什么不用命令直接启动呢,dos命令奉上@echo off set adbPath=D:/Android/AndroidSDK/platform-tools/(修改为adb所在路径) cd /d %adbPath% adb.exe kill-server adb.exe forward tcp:34999 localabstrac

2020-06-18 22:48:49 623

原创 C#获取所在的时区

由于项目主要做海外市场,发行在不同的国家,因此就有一些根据当地的时间进行处理的需求,而首先第一个我们就需要获得本地所在的时区: 第一种方案:直接根据TimeZone获取System.TimeZone.CurrentTimeZone.GetUtcOffset(System.DateTime.Now).Hours 第二种方案:根据当前的时间和格林尼治时间的差进行获取System.DateTime utcTime = System.DateTime....

2020-05-09 16:32:16 3246

原创 企业微信——定时群机器人布置

第一步:右击所建的企业微信群,添加群机器人,其他配置请看企业微信官方文档第二步:下载推荐的curl工具第三步:编写dos命令:D:/curl-7.68.0-win64-mingw/bin/curl.exe "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=fe02c110-a5fe-4fa5-91ff-20e448f00045"...

2020-02-27 15:08:27 2942

原创 Jenkins—分布式部署

当Jenkins-master上的job量足够大的时候,会给master造成很大的压力,而Jenkins的分布式部署则很好的解决了这个问题,最近对该项功能做了初步的探究。 首先是Jenkins的安装,这里就不再多说了,各种文档和博客有很多。 在Jenkins的节点管理中新建一个节点,我们配置节点如下在配置的过程中,关于启动方式一栏,可以在Jen...

2019-12-13 09:33:08 609

原创 Unity-Material去除无用的材质属性

当我们在unity中使用材质的时候,我们会发现,当这个材质切换到上一个shader的时候,我们那个shader的属性都会保存,包括贴图,在上个项目的优化过程中,我们TA也发现,一个material材质依赖了它没有的属性贴图,这个是unity的自身设计导致,但是如果它依赖了其他的资源,那么就可能造成不必要的资源冗余等问题,简单来说就是寻找一种方法可以将材质中保存的无用属性剔除,在看了...

2019-12-08 23:06:20 3518

原创 Jenkin-Unity打包获取之Unity获取Jenkins参数配置

项目最初始的Jenkins构建中,会根据不同的参数去对应执行unity中不同的打包函数,这个带来了巨多的不变性,于是设想可以在Unity中获取Jenkins的打包参数,其实就是获取运行时的环境变量,不过为了更方便的使用,我们可以将其进行封装一下,代码如下:public enum CommandArgsName{ Args1,}public class CommandLineTo...

2019-11-19 19:20:26 711

原创 Unity-Shader之遍历工程中的shader并生成shader的变体统计

项目优化总有一项是对Shader的优化,想要找出每个shader的变体数量[MenuItem("Tools/AAAAAAAAAAAA")] public static void GetAllShaderVariantCount() { Assembly asm = Assembly.LoadFile(@"D:\Unity\Unity2018.4.7f1\Edi...

2019-11-06 13:48:18 1309 1

原创 Tencent-InjectFix热更新调研——工程使用

承接上篇Tencent-InjectFix热更新调研——Demo使用,这一篇我们来看下怎样在实际工程中使用该插件,以及它能支持哪些热更,以及一些踩过的坑。 初始使用的时候,我们在出整包的时候失败,出现一些错误,也在官方作者的主页下进行了咨询,感兴趣的可以查看IFix.IDMAP问题,主要是我们的代码中使用了太多的第三方插件,看了下源码,会每一个函数都记一个索引,简单的...

2019-11-01 16:25:31 1461 1

原创 Tencent-InjectFix热更新调研——Demo使用

继XLua后腾讯又开源了InjectFix热更新修复方案,可以实现在Unity线上客户端内,不用迭代新版本,就能快速修复游戏的线上bug,InjectFix开源地址:https://github.com/Tencent/InjectFix接下来我们简单熟悉下例子工程,首先clone出来我们的工程,在Source/VSProj中双击build_for_unity来编译工程unity打开对应的...

2019-09-30 11:18:18 1862 2

原创 性能优化点以及标准

CPU模块:参考UWA文章:https://blog.uwa4d.com/archives/optimzation_cpu.html主要看帧率 超过33ms的比率占比控制在10-15%,超过50ms的比率控制在5%1、渲染模块: 不透明物体渲染耗时 半透明物体渲染耗时 渲染Triangle值(UWA低端设备推荐值):<20W 顶点数...

2019-09-10 13:50:02 359

原创 Unity修改分辨率优化游戏性能

前两天浏览到腾讯游戏学院上的一篇文章,利用 RenderTexture 降低实际渲染分辨率以提升渲染性能,结合着我们自己的项目,对这一方案进行的探索研究。关于修改游戏分辨率来提高游戏性能有另种方案:第一种:使用unity引擎自身的API进行修改,Screen.SetResolution此时修改的是物理分辨率,具体底层实现涉及到底层图形渲染的可自行查找相关资料,此时有一个问题,调用此API...

2019-08-01 18:08:50 4700

原创 批量解析AssetBundle

最近看项目中的bugly记录,发现一些奇怪的问题,包内的bundle会出现莫名的损坏情况(概率性的出现),问题如图:对于CAB开头的信息我们根本无法明文解析出是那个bundle出了问题,于是想着可以批量将bundle解析出来,至于单个怎么解析,可以查看这篇文章,如何查看AssetBundle中的内容,有了这个依据,便可以使用批处理进行解析:@echo off set work_p...

2019-07-03 09:59:39 473

原创 AssetBundle单个Assets打成bundle和多个Asset打成一个Bundle加载分析(二)

上文中测试了Load的时间效率,同事又提出此种情况下LoadAsset的情况,于是加入LoadAsset的实验数据,由于Unity自身的Bundle的LoadAsset立马unload的bug,使用协程来实验,但是只统计加载和Load的时间:代码如下:private IEnumerator LoadTatal() { string[] tempArr = ...

2019-06-25 14:23:56 620

原创 AssetBundle单个Assets打成bundle和多个Asset打成一个Bundle加载分析(一)

最近在参与AssetBundle划分策略的讨论,关于AssetBundle的细分方面,记得上个项目的时候主程说过,IOS有一个限制文件句柄的问题,还有5.3之前Android的SerializeFile每一个都是512K,不过这些问题在新的版本中都已经解决,但是是否bundle越大越好,或者是越细碎越好呢?简单做了一个测试,将大概80个图片单打成一个bundle大概1M以及打成80个不同的bund...

2019-06-24 15:52:10 688

原创 Unity-GameObject的Destroy问题记录

最近项目中出现一个奇怪的问题,每当在销毁一个GameObject时,在初始化的过程中拿到的一个GameObject的Component列表,访问其中的对象时总是为空,我们的机制是采取缓存的方法,也就是每次从池子中拿到一个Gameobject的实例来进行初始化,总体的原因肯定是池子中的对象被污染了。 查遍了整个代码逻辑,GameObject上附加的对象全部都删掉了,没...

2019-06-05 09:59:46 2905

原创 Unity的Shader加载编译优化

参考官方关于ShaderVariant的文章https://docs.unity3d.com/Manual/OptimizingShaderLoadTime.html;最近项目中引入了ShaderVariant机制,将部分shader的变体放到了variant中,但是在加载variant执行warmUp的时候发现卡的时间特别长,连接真机profiler看到如下之前看到过文章,在Un...

2019-05-23 20:47:13 2894

原创 Unity打AssetBundle时间优化

我们的项目打包用的是苹果的“垃圾桶”,每一次出包均在25分钟以上,统计了下各个步骤的时间,单打标记完资源的AssetBundleName后出bundle这一步就占据了将近一半的时间,因此在考虑如何能够减少这一步的时间。 记得unity是可以支持增量打AssetBundle的,在网上搜了下资料 得出思路: 1、第一次打bundle的时候...

2019-05-10 13:29:49 1477

原创 IOS下查看沙盒内目录文件

在游戏的测试过程中,为了方便,我们经常会把一些信息保存到本地,但是在IOS8.3之后,苹果为了安全起见,不再开放沙盒内的权限:根据提示,我们要启用iTunes文件共享,才能够看沙盒内的文件,只需要在plist文件中添加如下信息:<key>UIFileSharingEnabled</key> <true />再次查看,ok,...

2019-04-29 17:17:08 1503

原创 UGUI的ScrollView使用Mask遮罩增加DrawCall的调研

在UWA Day 2019大会上,听到UWA老师讲到Scroll中可视区域和非可视区域会单独的去合批,从而增加的DrawCall的数量,之前没有太关注这个,只是知道Scroll中的Mask会打断合批从而增加DrawCall,因而今天进行了一下测试1、不做任何处理的情况下,在滚动区域添加子节点 此时DrawCall有7个,理想情况下应该是4个,这种情况下,区域外和区域内分别合批2、...

2019-04-16 09:48:03 1235 2

原创 UGUI导入图集自动设置格式

unity-ugui由于其自身引擎设计,需要对导入的图片设置格式设置,以便更好的引擎支持,一下为自动设置的代码:private static void OnImportTexture (string assetPath) { if(assetPath.Contains(RAW_ATLAS_PATH)) { TextureImporter textureImp...

2019-04-12 11:00:06 2065 3

原创 游戏热更新使用HttpWebRequest遇到的问题

之前的项目中热更新,从Http服务器上下载配置文件的时候使用的是HttpWebRequest请求,而从CDN下载更新资源用的是原生代码写的接口,而在新项目中则从CDN下载资源开启多线程,每个现成中使用HttpWebRequest来下载资源,因而也遇到众多问题。大概有以下几个: 1、从http协议转到Https协议,建立SSL链接失败 2、主线程和各...

2019-04-10 17:19:10 501

原创 如何查看AssetBundle中的内容

近期在Unity项目过程中每次打包,发现有一个bundle的MD5值都不相同,通过AssetsBundleExtractor和UnityStudio查看bundle,里面的东西都是相同的,由此想要解开bundle具体内容查看里面的数据。 主要使用工具:WebExtract+binary2text,这两个工具在Unity的安装目录下:Editor/Data/Tools...

2019-04-02 09:21:29 4544

原创 Unity知识点小结(一)

1、Editor下通过路径加载资源:AssetDatabase.LoadAssetAtPath<GameObject>(path);2、修改完资源保存:AssetDatabase.SaveAssets()3、UnityEditorlog日志路径: C:\Users\改为计算机用户名\AppData\Local\Unity\Editor\Editor.log4、对于动态的...

2019-03-19 14:02:20 613

原创 GameObject.Find、Transform.Find和Transform.FindChild

      在Unity开发游戏中我们经常会遇到通过路径去找到我们想要的节点,Unity的API中给我们提拱了三个方法(题目中的三个),但是这三个又略有不同,其中后两个我们可以认为是相同的,在Unity2017里后两个方法好像已经合并为一个了,即Find       首先看我们的节点关系:其中脚本挂在了GameObject上       Transfrom:路径(函数参数)节点是否隐藏能否找到Ga...

2018-04-08 11:52:52 652

原创 Unity中拖尾特效表现处理

       游戏中的拖尾特效TrailRender,在我们的游戏刚刚上线的时候,会看到满屏的拖尾特效,原因就是在对象初始化完成后,从屏幕外部移到对应位置时,拖尾特效仍然存在,并且我们将TrailRender关闭移动,然后再打开也无法解决(打开之后,仍然会显示移动的轨迹),那么怎么处理呢?        通过查询TrailRender的API我们发现这么一个参数:                 ...

2018-03-29 10:49:28 15055 3

原创 unity性能优化之降低动画文件的大小

     Animation是Unity中的动画文件,主要内容由一个个关键帧数据构成。通过将Unity的资源序列化方式调整为Text,就可以以文本方式查看动画文件。通过菜单项Edit -&gt; Project Settings -&gt; Editor打开Editor Settings窗口,就可以设置资源序列化方式      打开一个anim文件看里面内容:里面使用的浮点数精度都比较高,因此我们...

2018-03-28 14:05:22 6639 1

原创 Unity编辑器之Hierarchy扩展显示隐藏节点以及图集显示

在Unity中,为了更方便的我们操作Hierarchy中的节点,以及后面查看ui节点在那个图集中之类的,通常会对Hierarchy进行扩展,看代码:主要是监听了EditorApplication的hierarchyWindowItemOnGUI事件using System.Collections;using System.Collections.Generic;using UnityEngin...

2018-03-26 18:05:28 3223

原创 tolua各个平台的编译

      本篇主要参照如何编译各平台使用的库-以编译tolua为例亲手编译了下各个平台使用的tolua的库,尽管参照,然后还是用了很长一段时间,主要还是对工具的不熟练,另外千万记住一句话:没事别和工具起劲        windows编译:MinGW(我的网盘下载)   解压到D盘,找到对应的MinGW运行路径(64位:D:\MinGW\x64\msys\1.0\msys.bat,32位:D:\...

2018-03-23 09:46:54 1736

原创 Unity脚本编译完成检测

在发布版本时,经常会在脚本还未编译完成时直接进行到下一步操作,而当下步操作依赖上一步的时候就会出现问题,解决方案:一:注册监听EditorApplication.update事件[InitializeOnLoad]public class UnityScriptCompiling:AssetPostprocessor{ static UnityScriptCompiling() ...

2018-03-19 19:12:10 5770

原创 Unity-Sdk—ShareSDK分享图片到微信

一、准备步骤: 1、登录ShareSDK官网,添加一个应用 2、登录微信公众平台,创建一个移动应用 3、新建一个Unity工程,按照Unity快速集成文档创建工程二、编写简单测试代码并挂在MainCamera上:using UnityEngine;using System.Collections;using cn.sharesdk.un...

2018-03-10 16:57:20 3348 1

原创 Unity寻路探究—Unity导出Recast寻路的obj数据

继上一篇编译过Recast源码之后,已经顺利运行起来我们的寻路工具,默认的数据目录下有两个dungeon.obj和nav_test.obj两个数据,因此我们看到RecastDemo用的数据是obj格式的,那么怎样从Unity中导出我们要用的obj数据呢 从wiki源码上下载这两个文件ObjExporter.cs和EditorObjExporter.cs(点击打开链接)...

2018-03-09 15:03:45 4468

原创 Unity寻路初研究—Recast工程编译

1、准备工具: 从GitHub上下载下来Recast源代码功能(点击跳转) 下载premake用于和Recast工程中的premake5生成对应平台的工程(点击官网首页) 下载SDL库(点击跳转),下载SDL2-devel-2.0.8-VC.zip2、生成VS工程 在Recast源码的RecastDemo目录下有一个pre...

2018-03-07 23:23:56 1200

原创 Shader中的一些标签意义

一、SubShader的Tag:1、RenderType(渲染什么样的类型)     "Opaque":渲染不透明的物体     "Transparent":渲染透明物体     "BackGround":主要用于天空盒     "Overlay":GUI、镜头光晕2、Quene     "BackGround" = 1000,可以用于天空盒     "Geometry" = 2000 按

2018-02-22 11:24:55 730

原创 怎样计算图片占用的内存大小

比如一张1024*1024在32位机子上占用的内存:       首先需要知道几个公式:               1、1像素 = 32位 = 4B               2、1M = 1024KB = 1024*1024B       因此1024*1024的图片内存大小为               1024*1024*4B = 4M

2017-12-05 15:20:32 12557 1

AssetBundle——async texture load探索测试工程

AssetBundle——async texture load探索的测试工程

2020-12-28

性能优化.docx

Unity移动端性能优化点以及各个模块的性能标准,以及关联在UWA的优化方案

2019-08-14

空空如也

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

TA关注的人

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