自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(182)
  • 资源 (3)
  • 收藏
  • 关注

原创 Unity中字符串拼接0GC方案

本文主要分析C#字符串拼接产生GC的原因,以及介绍名为的库,它可以将字符串生成的内存分配为零。

2024-02-27 23:10:43 1106

转载 C#中数据到底存在堆上还是栈上

首先复习一下值类型与引用类型。

2023-12-22 00:39:35 125

原创 lua的gc原理

原因:在GC标记阶段结束而清除阶段尚未开始时,如果新建一个对象,由于其未被发现引用关系,原则上应该被标记为白色,于是之后的清除阶段就会按照白色被清除的规则将新建的对象清除。:在初始标记后,垃圾回收器继续遍历灰色对象,将它们标记为黑色,同时将它们引用的白色对象变为灰色。:从根集合(如全局变量、栈、寄存器等)开始,将根集合中的对象标记为黑色,并将其引用的对象标记为灰色。黑色对象及其引用的所有对象都是被标记为活跃对象,不会被垃圾回收。:初始状态下,所有的对象都被假设为白色,表示这些对象是未访问的、未标记的。

2023-11-26 18:56:24 805

转载 【Unity3d】ScrollRect自动定位到某点

游戏开发过程中,经常遇到ScrollRect自动定位到某点的需求。比如,打开关卡列表时自动定位到最新关卡。下面就来介绍下怎么实现。

2022-11-28 14:55:35 1558

原创 浅谈Unity UI适配(二)

书接上回,继续讲CanvasScaler的第二种适配方式,ScaleWithScreenSize。

2022-08-29 22:39:31 1669

原创 浅谈Unity UI适配(一)

最近想换工作,在准备面试,突然想起了三年前一个没有答上来的问题,就是Unity的UI有几种适配模式,都是什么意思。当时支支吾吾半天没讲出来,今天必须搞懂它。

2022-08-22 20:44:57 3995 1

原创 Lua如何实现面向对象

众所周知,Lua作为一种很小却很灵活的脚本语言,如今广泛应用于各种网游的热更新。毕竟是解释型语言嘛,不需要提前编译。我们可以把它打成AssetBundle,现场解压运行。但是,相信很多做游戏开发的童鞋,从C#等强类型语言转去写Lua代码的时候,可能都感叹过,Lua真难用!!!找个引用要找半天,还经常打错字段,更重要的是,它不支持面向对象啊!我本来就是单身,你还要剥夺我new对象的权利吗?╥﹏╥不过,随着对Lua的深入♂了解,我发现它还是很迷人的,而且,以上问题前辈们早就有了解决方案。本文就来谈谈

2022-03-13 18:25:04 2345

转载 如何实现自定义的Timeline轨道

aa

2021-09-09 00:11:23 928

原创 关于Unity贴图的meta文件莫名其妙变化的问题

背景:项目中新导入资源会经过ImportAssetProcess脚本进行一番处理,同时项目使用cacheserver加快导入速度问题:近期项目中的贴图出现很多meta文件的变更,大部分贴图只要经历了reimport,都会有几项属性发生改变。如下图所示:这正是变更之前的值,由此可知,是OnPreprocessTexture这个方法搞的鬼。但是OnPreprocessTexture并没有对这几项属性做任何更改,他们为什么还是变了?我们来做个进一步的测试:只输出anisoL..

2021-08-30 11:21:17 1469

原创 关于同一个GameObject上面的多个monobehavior的Awake顺序问题

今天做一个需求,这个需求会在同一个gameobject上面挂载多个monobehavior脚本。这几个脚本在Awake时要获取彼此的实例,如下图所示:三个类的Awake脚本大概是这样:那么问题来了,1. 已知Unity的脚本Awake是有顺序的,那么这三个先后顺序是固定的吗?2. 假如三个脚本先后Awake,那么第一个Awake的类会不会得不到另外两个类的实例?我连续运行了5次,都是下面的结果:Awake的顺序是3->2->1。由此结果可以推导出第二个

2021-06-23 23:22:56 693 6

原创 在Lua中访问C#中的属性和方法的特殊情况---有out和ref关键字的情况

当C#的函数中有out和ref参数时,out参数、ref参数会和函数的返回值一起返回,且Lua中调用的时候out参数不需要传入C#中:class Person{ // public string name = "little ai"; //测试out参数public void TestOut(string name, int count){ Console.WriteLine(name)...

2020-11-19 17:49:26 255 1

转载 Lua中string.format占位符的使用

虽然lua中字符串拼接“string.format”相对于“..”消耗较大,但有时为了代码的可读性,项目中还是经常用到“string.format”。至于这两个用法的性能看源码也很容易看出来,这里就简单说一下,前者其实调用C函数str_format来实现拼接的,而后者只是一个操作符,通过memcpy来拼接,并且多个“..”的操作其实也只执行了一次concat。常用占位符%c - 接受一个数字, 并将其转化为ASCII码表中对应的字符%d, %i - 接受一个数字并将其转化为有符号的整数格式%o

2020-11-05 14:56:12 1211

原创 Unity定位安卓闪退问题

具体参考 http://www.xuanyusong.com/archives/4441

2020-11-04 16:28:43 1536

原创 Unity/Auto Layout -- 理解Layout Elements(布局元素)

详见https://blog.csdn.net/qq_28849871/article/details/79528697

2020-11-03 16:50:02 126

原创 《手写数字识别》神经网络 学习笔记

本文主要参考《深度学习入门-基于python的理论与实现》一书。“手写数字识别” 可以说是机器学习界的“hello world”了,本文将简单说下如何不使用成熟的机器学习库,来手动实现一个神经网络。首先,我们需要导入训练集和测试集:"""load_mnist(normalize=True, flatten=True, one_hot_label=False) 读入MNIST数据集 Parameters ---------- normalize : 将图像的像素值正规

2020-10-26 23:57:35 910

原创 Lua math函数库解析

2020-09-10 16:11:47 130

转载 Lua基础

局部定义与代码块:  使用local声明一个局部变量或局部函数,局部对象只在被声明的那个代码块中有效。  代码块:一个控制结构、一个函数体、一个chunk(一个文件或文本串)(Lua把chunk当做函数处理)  这样,可以在chunk内部声明局部函数,该函数仅在chunk内可见,并且词法定界保证了包内其他函数可以调用此函数。    在chunk内部定义多个local funct...

2020-04-27 13:57:39 308

转载 Unity3D中Layers和LayerMask解析

Unity中是用int32来表示32个Layer层。int32表示二进制一共有32位(0—31)。在Unity中可编辑的Layer如下图所示:在Unity中每个GameObject都有Layer属性,默认的Layer都是Default。在Unity中可编辑的Layer共有24个(8—31层),官方已使用的是0—7层,默认不可编辑!LayerMask实际上是一个位码操作,在Uni...

2020-04-14 20:43:21 227

转载 bat脚本控制网卡的禁用和启用

纯DOS就可以搞定。核心代码:netsh interface set interface "本地连接" disablednetsh interface set interface "本地连接" enabled其中"本地连接"是网卡的名字,通过“控制面板\网络和 Internet\网络连接”可以看到。disabled是禁用,enabled是启用。————————————————...

2020-04-07 18:23:05 2166

转载 Unity文件、文件引用、Meta详解

本文详细讲解了Unity引擎各种类型文件的信息内容、用法和使用场景,帮助研发团队对于引擎文件进行更好的理解和掌握。一、Unity项目中Assets目录下常见的文件类型在Unity3d中一般存在这么几种文件:资源文件 代码文件 序列化文件 文本文档 非序列化文件 Meta文件1、资源文件资源文件指一些创建好并且不再修改的文件。这样的文件一般是美术设计师和音频视频设计师...

2020-04-06 15:59:43 471

转载 python中的exec、eval以及complie

1.eval函数函数的作用:计算指定表达式的值。也就是说它要执行的python代码只能是单个表达式(注意eval不支持任何形式的赋值操作),而不能是复杂的代码逻辑。eval(source, globals=None, locals=None, /)参数说明:source:必选参数,可以是字符串,也可以是一个任意的code(代码)对象实例(可以通过complie函数创建)。如果...

2020-03-04 14:44:16 199

转载 python函数不定长参数

def fun(a, b, *args): print(a) print(b) print(args) print("="*30) ret = a + b for i in args: ret += i return retprint(fun(1,2,3,4))结果:12(3, 4)==========...

2020-03-04 14:38:21 264

原创 Python3开启自带http服务

https://blog.csdn.net/SPACESTUDIO/article/details/86760104

2020-02-18 15:38:44 200

转载 Mac如何快速打开library(资源库文件夹)

在较高版本的 Mac OS X 中,用户的资源库文件夹(/Users/username/Library)默认被系统隐藏了,从 Finder 窗口中不能直接打开。解决: 首先切换到 Finder 程序,打开“前往”菜单。  这个时候按住option键位就会在个人和电脑之间现实隐藏的资源库文件夹了。————————————————版权声明:本文为CSDN博主「Barbarossar」的原创...

2019-10-23 15:19:33 1358

原创 Unity Time类解析

(看不清图片的话,把图下载下来看吧,csdn排版太难用了,索性上传了图片)

2019-10-14 14:16:12 117

原创 Unity加载配置文件的几种方式

从业以来,也做了有将近十款游戏了吧。其中各个游戏都需要去读取配置,无论这个配置是本地的还是从服务器获取的。而配置的读取方式有很多种,我自己也用过很多种,今天特地来总结一下各种读取方式的实现,以及它们的优缺点吧。先来看看有哪几种常用的加载方式吧!从本地数据库读取配置文件从Excel文件中读取配置文件从json文件中读取配置文件从xml文件中读取配置文件从csv文件中读取配置文件使用...

2019-09-24 13:51:07 4810 3

转载 ugui在运行时改变RectTransform的大小

在代码中动态改变RectTransform大小的方法如下所示:1:直接对sizeDelta属性进行赋值,其中X和Y可以对应理解成width和height。sizeDelta的具体含义:若achors是一个点的话则代表宽高,否则为到锚点的距离var rt = gameObject.GetComponent<RectTransform>();rt.sizeDelta = new Ve...

2019-09-21 16:11:08 124

转载 UGUI优化最强总结(一)

自从Unity问世以来,UI一直都存在比较大的问题,自带的OnGUI不能所见即所得,制作过程比较麻烦。于是出现了很多第三方的优秀的UI插件,比如很多项目里面用到的NGUI,或者后来出的FairyGUI。Unity官方在4.x时代开始推出了自己的新UI系统,名为UGUI。由于是官方出品,所以选择使用的人也比较多。阿赵我也是基于信任官方出品的心理,在最近的两个项目里面都使用UGUI进行开发。UGU...

2019-09-19 19:41:31 602

翻译 Throwing an Invalid Cast Exception?... 拆箱引起的一个错误

隐式和显示转换通常都非常简单:int i = 5;float f = i; // int32到float的隐式转换Byte b = (Byte) i; // int32到byte的显示转换如果一不留神,安全的显示数值转换会引发一个运行时异常:Object i = 5;float l = (float) i; // System.InvalidCastException: S...

2019-08-22 20:29:24 502

原创 Unity5.X实现混淆

在Unity5.6.1中,无法对特定工程指定混淆文件,只能去修改Unity目录下的Editor\Data\PlaybackEngines\AndroidPlayer\Tools\UnityProGuardTemplate.txt文件。这是一个全局的混淆文件,也就是你所有使用Unity5.6.1的工程,都会受到这个文件的影响。在Unity5.6.5中,已经开始支持自定义混淆文件,不过U...

2019-08-16 16:07:58 945

原创 使用gvrsdk遇到的全面屏适配问题

话说之前写了一篇灰常详细的文档,可不小心弄丢了。只能重新再写一份o(╥﹏╥)o。问题描述详见https://github.com/googlevr/gvr-unity-sdk/issues/976大致意思是不知道哪里出了问题,可能是gvrsdk的问题,也可能是国内厂商rom的问题。反正最后渲染出来的结果不正确,总体朝右偏移了。我之前使用的gvrsdk版本是GVR SDK for...

2019-08-16 15:53:39 275

转载 IntelliJ Idea 常用快捷键 列表(实战终极总结!!!!)

IntelliJ Idea 常用快捷键 列表(实战终极总结!!!!)1. -----------自动代码--------常用的有fori/sout/psvm+Tab即可生成循环、System.out、main方法等boilerplate样板代码例如要输入for(User user : users)只需输入user.for+Tab再比如,要输入Date birthday = us...

2019-08-02 14:00:07 96

转载 在Unity3D中的渲染优化-批处理技术

在Unity3D中,常用的减少Draw call的优化技术就是批处理技术。批处理的原理是减少每一帧需要的Draw call数目。为了把一个对象渲染到屏幕上,CPU需要检查哪些光源影响了该物体,绑定shader并设置它的参数,再把渲染命令发送给GPU。当场景中包含了大量的对象时,这些操作就会非常耗时。例如,如果我们需要渲染一千个三角形,把它们按一千个单独的网格进行渲染所花费的时间要远远大于渲染一个包...

2019-05-26 21:58:30 243

原创 Unity实现有限状态机

本文参考【游戏设计模式】之三 状态模式、有限状态机 & Unity版本实现只不过原文是使用c++实现,本文使用Unity和C#实现。游戏开发过程中,各种游戏状态的切换无处不在。但很多时候,简单粗暴的if else加标志位的方式并不能很地道地解决状态复杂变换的问题,这时,就可以运用到状态模式以及状态机来高效地完成任务。状态模式与状态机,因为他们关联紧密,常常放在一起讨论和运用。而本文将对...

2019-05-26 15:06:47 1008 2

原创 Unity去除armv8目录

前些日子,因为项目中引用的某些aar包包含armv8的.so文件,所以在打包生成的apk包中会有armv8的目录,其实我们是不需要这个目录的。去除它可以减小包的体积。首先,我们需要弄清楚apk下的libs这几个目录是干嘛的,其实每个目录对应的是一种CPU架构:armeabiv-v7a: 第7代及以上的 ARM 处理器。2011年15月以后的生产的大部分Android设备都使用它. arm...

2019-05-12 12:24:50 1438

原创 安卓无线adb调试

将手机和计算机连接至同一网段的网络,比如同一个路由器下 使用USB连接手机和计算机 使用命令行运行下面的指令来指定adb使用的端口号 adb tcpip 5555 使用命令行运行下面的指令来获取手机的IP地址 adb shell "ifconfig | grep -A 1 wlan0 | tail -n 1 | cut -f2 -d: | cut -f1 -d' '" 假如手机...

2019-03-26 22:28:47 315

原创 设计模式之我见(二)——策略模式

假如现在你的公司接到了一个项目,要做商场里的促销系统。老实说,这难不倒学过简单工厂模式的你。嗯,话虽如此,我们还是先来使用简单工厂简单实现一下,毕竟就怕眼高手低,用的不熟练。//现金收费抽象类abstract class CashSuper{ //参数为原价,返回打折价 public abstract double acceptCash(double money)...

2019-03-17 21:18:37 141

原创 VS保存时自动格式化代码

最近团队里严抓代码格式问题,而Visual Studio又不像Android Studio那样,ctrl + s时会自动格式化代码。自己又经常忘记用ctrl + k + f手动格式化,很不方便。于是就google了一下,发现了一个很好用的插件:Format document on Save。他可以在你保存时自动格式化代码。另外,插件作者强力推荐了另一个插件:EditorConfig。好像可...

2019-02-24 14:16:01 2408 1

原创 设计模式之我见(一)——简单工厂模式

我们由一个计算器谈起:实现一个计算器,无非要考虑两件事:用户输入,和运算。其中用户输入就是两个数,我们做一个界面来接受这两个数即可。而运算,就是一个运算符,或者说是一个算法。我们可以定义一个类叫Algorithm,把所有的加减乘除等等运算全写在里面。但这样显然是不妥的,比如说我想扩展一个平方运算。那么我要同时暴露以前写过的所有运算,这样很不安全,也不符合面向对象的开放-封闭原则(即...

2018-12-15 22:31:48 132

转载 在cmd 中遇到‘git’ 不是内部命令,如何解决

在windows 系统中,利用命令行进行 git 操作时,不是内部命令,那么,说明,你并没有安装GIT指令文件。解决办法第一步:从Git 官网,下载windows系统对应版本。下载地址 https://git-scm.com/在网站中选择对应的版本,进行下载。第二步:安装Git一般使用默认设置即可:一路next,git安装完毕!第三步:配置Git环境变量,确保在cmd 下能成功运行...

2018-12-02 14:13:26 568

【加强版sai】解压就能用(已安装好纹理 笔刷)

加强版sai,主要用于2D绘画。里面包含许多纹理和笔刷。

2019-04-21

unity简单的2D怪物敌人控制系统源码Simple 2D Enemy KI

unity简单的2D怪物敌人控制系统源码Simple 2D Enemy KI.

2019-04-21

GameUtils.dll

可使用本类库快捷读取xml、json等文件。教程见博文:http://blog.csdn.net/qq_17758883/article/details/76482755

2017-10-12

空空如也

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

TA关注的人

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