自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (1)
  • 收藏
  • 关注

原创 解决Timeline暂停时坐标重置问题

网上找了好多答案,基本上都是复制粘贴,然后还没啥卵用…https://blog.csdn.net/weixin_38239050/article/details/79902799这篇文章是有效果的。总结:Animator勾选这里,覆盖掉角色的位移,就不会在继续timeline的时候重置位置了...

2021-09-06 10:44:12 663

原创 优化Lua使用Vector3产生GC

Vector3是结构体,在C#中本不会产生GC。但是由于Vector3属于C#的结构体,当Lua使用Vector3时就会产生GC。通常在使用摇杆时,就会生成许多的Vector3对象,用于设置移动的位置与方向。我们可以通过在lua中自定义Vector3以为缓存生成出来的Vector3(因为方向值基本上就那么多个,缓存以避免重复生成),来达到减少GC的目的local Vector3 = {}setmetatable(Vector3, __UnityEngine.Vector3)-- 创建Vector

2021-04-13 17:28:59 1170

原创 C# List<T>使用优化

List在我们的开发过程中经常会用到,但其实List的数据插入与删除操作是非常耗时的。关于删除的优化:我们可以先将List中需要删除的元素与最后一个元素置换位置,然后再调用删除操作测试代码如下...

2021-04-13 16:01:27 573

原创 解决UnityUI拼接接缝问题

美术同学给我们出的图经常可能会是长条的,如133450这种。为了优化内存,通常我们会限制UI图集的大小为10241024。那么对于这种图片我们通常会把图片拆成两块,带来的问题就是美术给的图片明明是无缝的,但是到了UI上却能很明显的看到一条缝隙对于这种问题的解决办法,我们可以把UI的FilterMode设置为point对于FilterMode的三种模式的解释:Point单点插值,纹理将变得块状化(blocky up close);Bilinear双线性插值,纹理将变得模糊(blurryup c

2021-04-13 12:16:15 2116

原创 TCP三次握手,四次挥手

转载自https://blog.csdn.net/mary19920410/article/details/58030147TCP报文是TCP层传输的数据单元,也叫报文段。第一段32位数据中前16位为源端口号,后16位为目的端口号第二段为随机生成的32位序号,表明客户端发给服务端的报文序号SEQ第三段为确认序号ack,对上一条发送的信息进行确认第四段如此表示,其中缺人序号ACK只有一位0/1,表示SYN是否发起新连接只有一位0/1,FIN结束一个连接只有一位0/1TCP三次握手:第一次客户

2021-03-23 12:10:11 76

原创 C#等待多线程完成(await与async)

C#优雅的完成多线程回调(await与async)遇到的问题遇到的问题我在写一个关于从资源服下载网络资源的代码时遇到一个问题,即我们无法在一个方法块中完成我们想要做的所有逻辑,即请求下载,资源加载完成逻辑。我们通常的处理方式为:调用资源下载接口,传递资源加载成功回调方法当资源下载完成后,再去资源加载回调中去做资源处理。当我们完成一个需求,需要下载多个资源时,回调方法将会越来越多。我们的代码也将越来越复杂。将会产生如下的狗屎代码:我们不能够直接得到文件,只能在此处请求资源下载,然后再将逻辑放

2020-11-30 16:21:19 3809

原创 Unity让对象看向目标方向

/// <summary> /// 设置对象的前方向 /// </summary> /// <param name="vForward"></param> public void SetForward(Vector3 vForward) { Root.transform.forward = vForward; }/// <summary> /// 获得前置向量 //

2020-10-12 10:56:39 1871

原创 Unity纹理压缩优化

纹理的分辨率为2的幂次方,则可以大大压缩图片大小

2020-10-11 14:33:25 165

转载 Unity在移动端纹理压缩格式选择

Unity在移动端纹理压缩格式选择转载自:https://mp.weixin.qq.com/s/DnjBUqK5MtJyqucHxOL57QUnity几种ETC纹理压缩格式:RGB ETC1 4 bit :4 bits/pixel,对RGB压缩比6:1,不支持Alpha,绝大部分安卓设备都支持。RGB ETC2 4 bit :4 bits/pixel,对RGB压缩比6:1。不支持Alpha,ETC2兼容ETC1,压缩质量可能更高,但对于色度变化大的块误差也更大,需要在OpenGL ES 3.0和Op

2020-10-11 14:13:52 1325 1

原创 UGUI移动端材质丢失问题修复

之前一直是打的PC包,后来发布安卓包的时候发现Text和Image材质都丢失了。查了很久最后发现是因为没有设置默认材质导致的…Size加1,新增一个默认材质

2020-09-25 19:31:02 234 1

原创 优化UI点击事件需要加UI组件问题

一般我们UI点击事件都需要有类似Image,Text这样的控件。如果我们需要做一个底板可以被点击时,一般的做法就是放一个Image控件上去,然后Sprite设置为空。这种做法会给我们的UI增加一次drawcall。在UI的继承关系中我们发现,带点击事件的UI都继承自Graphic。于是我想通过给空物体增加Graphic做点击事件监听以达到优化性能的目的。这里,我发现代码中强行增加Graphic这个组件会报错不能添加脚本行为图形。脚本类不能是抽象的!那么只需要新建一个类继承Graphic,里面什

2020-09-24 17:10:59 104

原创 使用位存储地图信息,优化地图阻挡数据

地图阻挡数据优化思路写入操作读取操作思路一般我们的地图阻挡是否可以行走都以01进行区分,0为可走,1为阻挡。在地图编辑器中,我们会将地图信息存在地图资源文件mapBlock.dat文件中在最开始我们使用的是直接以int类型进行存储,十个场景的阻挡信息内存占用达到了15M。目前,我们已知int占用4个字节,一个字节占用8个位。我们0和1可以用一个位进行存储。那么,原本我们一个int使用了32个字节但是只存储了1个数据,内存占用达到15M,使用位进行存储后,我们可以压缩内存到0.46M。我们最小

2020-07-27 17:14:02 187

原创 设计模式【2】装饰模式

装饰模式思想一般实现给人类增加衣服的写法装饰模式实现思想在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责或者 处理那些可以撤销的职责的时候可以使用。在Unity中的组件就是使用了这种设计模式实现的组件扩展。一般实现给人类增加衣服的写法这样的实现方式当我要再加一顶帽子的时候必须要去修改Persion类,违背了开放-封闭原则public class Persion{ pub...

2019-08-12 11:42:15 127

原创 程序设计三大原则

单一职责原则软件需要做的内容有许多,比如一个在Unity中开发一个俄罗斯方块小游戏。其中将会有UI逻辑,游戏进度逻辑,消除方块逻辑,方块移动逻辑等等。我们在设计软件的时候就是要讲他们的职责相互分离,当你能够想到一个类有多于一个职责时就可以考虑将其分离出来。开放-封闭原则对于扩展是开放的,对于更改是封闭的。将不变的部分作为基类,在更改需求的时候选择增加扩展类而不是修改原有类。依赖倒转原则...

2019-08-12 10:18:38 1846

原创 设计模式【1】简单工厂模式

简单工厂设计模式思想代码算法基类加法减法运行总结思想简单工厂设计模式就是为了能够根据不同情况动态获取到需要的类型在本次将会演示一个计算器的功能我们无法知道用户在程序中会输入哪些字符,是±*/或者其他,但是我们能确定的是用户需要通过输入将两个值进行运算,得到一个返回结果。那么在此处我们就可以创建一个算法基类,有设置值并计算后返回值的方法,值1与值2两变量。然后加减乘除类继承该类,在运行程...

2019-08-09 17:18:24 168

转载 Unity内存优化——资源方向

Unity内存优化——资源方向前言资源内存占用纹理纹理尺寸Mipmap功能Read & Write网格Normal、Color和Tangent引擎模块自身占用WebStream和SerializedFile托管堆内存占用总结前言内容转载自博客:https://www.jianshu.com/p/48f1a1b7949e资源内存占用一款游戏项目的资源主要可分为如下几种:纹理(Text...

2019-05-27 17:51:34 488

原创 隐藏界面最佳解决方案

隐藏界面最佳解决方案隐藏界面方案最优解决办法隐藏界面方案1.SetActive优点:方便快捷缺点:第一,Disable掉的物体上面的脚本也不运行了,而很多时候我们需要那个脚本运行。这样就不能用挂在自己身上脚本把自己SetActive(true)或者SetActive(false)。如果把自己的引用给另外一个脚本来对自己SetActive(true)或者SetActive(false),...

2019-05-25 23:42:26 691

转载 Unity三种加载方式详解

Unity三种加载方式详解前言有三种资源加载方式:资源的加载与卸载一般的加载流程:一般的释放流程:一个容易出错的例子:前言感谢转载自博客主周小菲的博客,原贴地址:http://www.cnblogs.com/zhoujiangyue/articles/7066070.html有三种资源加载方式:1.静态引用。具体操作:创建public变量,把文件挂到物体上,在Inspector里把相应资源...

2019-05-25 23:20:23 1656

转载 Unity内存优化 —— GC详解

Unity内存优化 —— GC详解前言简介Unity内存管理机制简介堆栈内存分配和回收机制堆内存分配和回收机制垃圾回收时的操作何时会触发垃圾回收GC操作带来的问题分析GC带来的问题分析堆内存的分配接下来用两个简单案例阐述值类型和引用类型的回收机制利用profiler window 来检测堆内存分配:降低GC的影响的方法减少内存垃圾的数量清除链表对象池定时执行GC操作前言感谢博客主提供思路,内容...

2019-05-25 17:25:25 1861

原创 XLua运行时热更新原理与实现

Lua热更新原理前言基本知识最基本的热更新的方式(不可用)__G完整热更新的方法前言感谢提供思路两个博客主以下是博客地址:https://gameinstitute.qq.com/community/detail/120538https://www.jianshu.com/p/7b8ae23ecd81基本知识我们在require一个Lua文件的时候是将Lua文件加载到package.l...

2019-05-23 23:27:19 5038

原创 Lua事件消息的写法

Lua事件消息的写法概述实现使用概述最近在学习Xlua与项目的结合,在这里我们要时间的内容有监听事件消息,触发事件消息,移除事件消息,在监听与触发的时候都需要能够传值给监听方法实现写个基本的创建类的方法,用于给事件消息创建对象function simpleclass() local class_type = {} class_type.new = function() ...

2019-05-21 11:01:44 1195

原创 Unity给UI添加点击事件

给UI添加点击事件前言思想前言此次所说的添加点击事件的方式并非普通的给个Button加上button.onClick = Touch,因为在游戏中我们也不光只会按钮,还有图片,文本等等组件。思想关于点击事件,我们需要确定的有三个参数1.点击的类型:单击,双击,长按,拖拽,等等2.回调函数,也就是做了点击事件的响应函数3.回调参数,这个是跟着监听一起传过来的...

2019-05-21 11:01:36 2781

原创 Lua监听C#消息

Lua监听C#消息概述消息基类概述在项目中有时候会出现需要Lua监听C#消息的情况,如进入游戏,我们将进入游戏的代码放在C#,将游戏中的界面代码放在Lua中。选择在C#中调用lua代码的方式是非常不建议的,这样会提高代码的耦合性。那么我们能想到的是与之前一篇博客中提到的一样,使用事件消息来进行通信。消息基类关于消息我们有很多种,比如从Lua到C#的,C#之间的,Lua与Lua的。那么我们就...

2019-05-21 11:01:25 587

原创 UGUI打包图集解决方案

UGUI打包图集解决方案前言使用数据准备调用外部EXE程序前言有一个非常好用的打包图集的插件叫TexturePacker,网上百度这个插件自行获取就行使用它是一个exe程序,在Unity调用需要通过ProcessStartInfo进行调用,其实使用比较简单,只需要准备参数,然后再进行调用传值即可。数据准备/*srcFolders : List<string>类型,...

2019-04-26 18:20:52 855

原创 FairyGUI基础学习笔记

FairyGUI基础学习笔记前言加载资源到场景中按钮添加点击事件前言之前研究了一些Xlua想搞热更新,得需要一套UI框架,公司的那套局限性太强,不得已只能另辟蹊径,之前听朋友说公司是用FairyGUI做开发,于是乎准备搞一个自学笔记,记录一些自学的经验(只针对于代码的笔记,操作太繁杂具体自行找官方文档学习或跳转视频学习链接:http://www.sikiedu.com/my/course/13...

2019-04-09 20:43:31 1275

原创 Unity导出安卓踩坑笔记

踩坑盘点1.选择导出成Eclipse还是Android Studio?Android Studio踩坑!1.选择导出成Eclipse还是Android Studio?强烈建议导出成Android Studio!!!我在跟台湾对接SDK时他们那边给的SDK是aar,而我以前学过eclipse但是没有接触过Android Studio。为了能够尽快完成任务,我选择使用我熟悉的Eclipse来工作。...

2019-04-09 14:13:24 919

原创 Xlua基础知识学习笔记

Xlua基础知识C#调用Lua代码在C#中使用Lua文件代码控制游戏物体C#调用Lua代码 LuaEnv luaenv = new LuaEnv(); luaenv.DoString("print('000')"); luaenv.Dispose();在C#中使用Lua文件代码控制游戏物体...

2019-03-30 16:22:00 284

原创 Unity优化篇——ScrollView

ScrollView的优化ScrollView优化的基本思想实现后的效果功能实现思想核心代码ScrollView优化的基本思想一个列表数据可能是几十上百条的,而在UGUI中,虽然Item移出了Content为不可见但其任然占用了资源,而我们能看到的Item数量仅仅是在界面上的五六个。那么我们优化的方式就是重复利用这五六个Item,超出的Item补位到即将出现的Item位置。实现后的效果...

2019-03-07 09:36:32 3573 3

Unity3d基础学习课件

包含了Unity3d基础学习,各种移动旋转触发射线管理器开发,服务端以及一个完整的项目代码全注释

2018-02-23

空空如也

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

TA关注的人

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