自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

iShow的博客

游戏开发

  • 博客(27)
  • 收藏
  • 关注

原创 【优化笔记】UGUI控件优化

Text组件优点:容易使用,不必进行繁多设置动态字体,较为灵活缺点:组件变化会引起重建组件启用禁用或父节点启用禁用都会引起重建text中的字符是按一个个面片来渲染的,面片周围有大量空白区域,容易造成图形重叠从而降低批处理效率。字体放大后容易产生模糊动态字体集实际上可能产生很大的内存消耗,因为需要为每种不同字体维护一个字形。TextMeshPro字体集Unit...

2019-06-27 23:02:32 534

原创 【优化笔记】UGUI性能优化方案

性能检测参考函数 [CPU]1、Canvas.SendWillRenderCanvases()该API为UI元素自身发生变化时所产生的调用,发生在canvas被渲染之前。2、Canvas.BuildBatch[Cpp]该API为UI元素合并的Mesh需要改变时所产生的调用。通常之前所提到的Canvas.SendWillRenderCanvases()的调用都会引起Canvas.Bu...

2019-06-19 23:04:05 1948

原创 【Unity/笔记】UGUI基础原理

UGUI基础原理Graphic[图形][RequireComponent(typeof(CanvasRenderer))][RequireComponent(typeof(RectTransform))][Graphic][2]类是由Unity UI系统的C#库提供的基类,所有的向画布系统提供可绘制几何内容的UI系统C#类都继承它。大多数内置的UI系统绘图类都是通过 Maskab...

2019-06-19 22:40:06 2144 1

原创 ??运算符

??运算符?? 运算符称为 null 合并运算符,用于定义可以为 null 值的类型和引用类型的默认值。如果此运算符的左操作数不为 null,则此运算符将返回左操作数(左边表达式);否则当左操作数为 null,返回右操作数(右边表达式)。 /// <summary> /// Gets a single instance /// </su...

2018-12-27 16:51:33 405

原创 【A star/笔记】A星寻路算法基础

A星算法什么是A star A*搜索算法,俗称A星算法。这是一种在图形平面上,有多个节点的路径,求出最低通过成本的算法。常用于游戏中的NPC的移动计算,或网络游戏的BOT的移动计算上。 该算法综合了Best-First Search和Dijkstra算法的优点:在进行启发式搜索提高算法效率的同时,可以保证找到一条最优路径(基于评估函数)。 核心公式 f(n)=...

2018-06-01 17:00:13 1645

原创 【XLua/笔记】XLua入门

占个坑

2018-05-31 20:42:54 291

原创 【Lua/基础】Lua基础知识

Lua基础(挖个坑待整理…) lua读作“撸啊”,游戏开发中热更神器,无论是初级开发者还是高级开发者都需要熟练掌握的一门语言,因为它小巧实用,无孔不入。一定要学习lua的几个理由可扩展性 lua最出名的特点用于游戏中的热更新另外还有游戏插件,同样是脚本语言,为什么只有lua受此青睐,有大神给出回答 总结来说lua的虚拟机很小,其和谐的底层实现在进程乃至线程级都没有污染,...

2018-05-30 20:52:49 710

原创 【C#/笔记】C#中的不安全代码(指针)

不安全代码介绍 C#中可以像C++一样使用指针进行内存操作,包含指针操作的代码为不安全代码。 由于直接操作内存,效率一般更高。 可指定类型任何整形类型任何浮点型类型字符布尔型小数任何枚举类型任何指针类型 任何仅包含非托管类型字段的用户定义的结构类型注意 指针类型不从对象继承,并且指针类型与 object 之间不存在转换。 此外,装箱和取消装箱不支持指针。 但是,...

2018-05-28 10:33:12 768

原创 【Unity/笔记】使用AssetBundle打包资源文件

AssetBundle创建AssetBundleinspector下方面板中Assetbundle框左边创建资源名,支持文件路径结构如envir/forest,右边可以使用同样的操作创建一个不同的名字,但是这不是必须的。 创建一个Editor文件,编写创建ab的工具脚本,脚本中核心函数为BuildPipeline.BuildAssetBundles其中参数BuildAssetBund...

2018-05-12 10:17:18 1339

原创 【C#/笔记】泛型Generics

泛型Generics泛型是什么 所谓泛型,通用类型的意思,英文单词是generics,可以理解为,以类型为参数,在原有类型或方法上进一步的抽象。 泛型的作用避免了装箱拆箱造成的资源消耗是类型安全的提高代码复用泛型的主要思想就是将算法与数据结构完全分离开来,使得一次定义的算法能够作用于多种数据结构,从而实现高度可重用的开发。 通过泛型可以定义类型安全的数据结构,而没有必要使...

2018-05-01 10:54:43 266

原创 【Unity/笔记】认识ScriptableObject

ScriptableObjectScriptableObject 一个继承自UnityEngine.Object且字段能够被序列化的类 也就是说需要用到命名空间UnityEngine VS MonoBehaviour 我们知道一般继承自MonoBehaviour的脚本组件可序列化的字段都能在Inspector中显示出来,ScriptableObject也可以,当相比之下它不必挂载...

2018-04-20 21:04:21 1109

原创 【工具/笔记】ProtoBuf简易教程(proto3)

ProtoBuf 3ProtoBuf 如今Google官方的ProtoBuf已经出了ProtoBuf的C-sharp版本,使用proto3语言标准,使用库文件需要.Net4.x,需要在Unity的PlayerSettings中将.Net旧版本切换至4.x Protobuf与BinaryFormatter比较 可以参阅这篇目的 提升序列化反序列化速度,减小二进制文件大小提高传输效率...

2018-04-19 20:13:26 1411

原创 【C#/笔记】序列化与反序列化

序列化与反序列化序列化与反序列化 序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程,其逆过程一般称为反序列化。 格式化器 使用命名空间System.Runtime.Serialization.Formatters.Binary下的 BinaryFormatter binformatter = new BinaryFormatter();得到一个格...

2018-04-17 15:37:13 593

原创 【C#/笔记】关于Stream与byte[]

Stream定义 广义来讲,流应该是一种物质的连续动态的形式,例如水流,车流等。 那么在C#中流应该既是连续数据的载体,而且是二进制形态的数据。Stream C#中的Stream是个抽象类,属性包含了可读可写可查找及延时等特性还有有一个长度Length和Position 这个Position属性很重要,相当于”游标”的作用,用来获取或设置当前流中的(游标)位置. Stream...

2018-04-14 17:49:41 3079

原创 【基础/笔记】编码

编码 信息从一种形式或格式转换为另一种形式的过程也称为计算机编程语言的代码简称编码 比较早期的编码如摩尔斯电码和布莱叶盲文,它们都通过这种编码方式解决了人类所遇到的巨大难题。 字节(byte)与字符 字符指的是我们生活常用的文字或符号,文字在人类发展过程中已经有几千年历史,是人类比较容易理解的一种信息表示方式。 为了使数字转化为字符,就需要使字符(包括数字)与数字编码对应,这样一个系统...

2018-04-13 17:33:05 272

原创 【.bat批处理/笔记】入门批处理语法

入门批处理语法echo 作用1:打开回显或关闭请求回显功能。如果没有任何参数,echo命令将显示当前回显设置。 语法:echo [{on|off}] 作用2:输出信息到屏幕,即我们常用的“打印”功能 语法:echo [message] @ 作用:回显屏蔽。与echo关闭回显不同,@只会隐藏当条回显。 语法:@ [command]pause 作用:暂停。暂停后按任意键会继...

2018-04-11 11:28:10 296

原创 【C#/笔记】反射Reflection

反射Reflection程序集(Assemblies)与命名空间(namespaces) 命名空间 提供了一个逻辑组织系统,是唯一识别的一套名字,用来避免在命名的冲突。程序集 是.NET程序的部署单元,用于物理包装和配置,像一个类型的容器,可以包含类别(元数据信息)、用于实现这些类型的可执行代码(IL)、资源和对于其他程序集合的链接。 有两种主要种类:应用程序(.exe)和库...

2018-04-09 10:18:33 197

原创 【计算机基础/笔记】编译原理简要知识

编译原理编译 简单说,编译器是一个程序,它读入用某种语言(源语言)编写的程序并将其翻译成一个与之等价的以另一种语言(目标语言)编写的程序,且在翻译过程中,编译器能够向用户报告被编译的源程序中出现的错误。编译的分析-综合模型 编译由两部分组成:分析与综合。 分析:将源程序形成基本块并形成中间表示。 综合:把中间表示转换为所需的目标程序。分析线性分析(词法分析) ...

2018-04-08 20:48:43 645

原创 【随笔】学习是永久的事

说明 写博客这件事拖了很久才做,实在不该,过去习惯手写笔记,或是把看到的好文章收藏亦或者复制文档保存下来,结果手写笔记积累的笔记本太多,成了随身携带的累赘,而直接保存收藏下来的文档往往躺在电脑里常年都难见天日,最终还是老老实实到博客记录一下。文章格式 目前写所有笔记都是用的markdown,个人觉得对开发者比较友好,能用熟悉的编码方式轻松码出干净整洁的排版,效率还是很高的,最重要的是能数据...

2018-04-08 18:07:43 183

原创 【Unity/笔记】特性Attribute

特性Attribute元数据 元数据是关于数据的组织、数据域及其关系的信息,简言之,元数据就是描述其它数据的数据 元数据是一种二进制信息,用以对存储在公共语言运行库可移植可执行文件 (PE) 文件或存储在内存中的程序进行描述。将您的代码编译为 PE 文件时,便会将元数据插入到该文件的一部分中,而将代码转换为 Microsoft 中间语言 (MSIL) 并将其插入到该文件的另...

2018-04-08 17:07:25 204

原创 【C#/笔记】委托(Delegate)和事件(Event)

委托(Delegate)和事件(Event)观察者模式 定义了对象一对多依赖,当一个对象改变时,所有依赖者都会收到通知并自我更新。 需知 方法组转换 支持从(多个)方法到兼容的委托类型的隐式转换。逆变性 方法获取的参数类型可以是(委托的)参数的类型的基类。协变性 方法返回类型可以是从(委托的)返回类型派生的派生类。 回调 将方法(或委托实例)作为(能隐式...

2018-04-08 14:58:46 318

原创 【Unity/笔记】垃圾回收GC

垃圾回收GC(Garbage Collection)托管资源的分配 CLR在运行时管理着一段内存地址空间(虚拟地址空间,在运行中会映射到物理内存地址中),分为“托管堆”和“栈”两部分。 栈一般用于存储值类型数据,它会在方法执行结束后自动销毁其中引用的值类型变量,当数据被存储在堆栈上的时候,只需要简单地在其后进行扩展。当数据失效的时候,只需要将其从堆栈上移除。 托管堆用于引用类型...

2018-04-07 09:40:31 1446

原创 【C#/笔记】装箱和拆箱

装箱与拆箱作用 一般说:将值类型转为引用类型为装箱,而将装箱的引用类型还原为值类型则是拆箱。 例如: ArrayList可以同时容纳不同类型的数据,其本质就是将所有类型都作为object类型来对待,那么添加和移除值类型数据时,不可避免会进行装箱和拆箱的操作。 public virtual int Add(object value); public virtual voi...

2018-04-06 21:07:32 185

原创 【C#/笔记】数据类型

数据类型 C#中所有的类型最终都派生自基类System.Object值类型 值类型最终派生自基类System.ValueType。 值类型主要包括结构和枚举两类。 常用结构类型:Int32(int),Single(float),Double(double),Boolean(bool)及自定义结构类型等。 枚举类型如:FontStyle.引用类型 所有称为类的类型都是引...

2018-04-06 17:44:46 496

原创 【C#/笔记】参数修饰符Ref Out Params

ref out params参数修饰符params 使用params修饰形参,可以允许调用函数传参时:1.无参 2.逗号分隔的多个参数 3.值为数组的变量 ref与out基本用法 使用时在实参和形参前添加ref或者out修饰符,用于对实参的值进行修改。ref与out的区别 使用ref前,变量必须先初始化必须对out修饰的形参进行赋值ref允许不对变量进行赋值更改而out不行 ...

2018-04-05 15:46:02 289

原创 【Unity/笔记】协程Coroutine

协程介绍 不是进程或线程,执行过程类似于子例程或者说不带返回值的函数调用。达到类似多线程的并发执行效果在yield return 处移交控制权。 可以提前结束执行使用声明方式 IEnumerator [methodName] (){yield return XXX } IEnumerator [methodName] (){yield return T ...

2018-04-04 17:34:05 516 1

原创 【学习笔记】Unity StartCoroutine 中 yield return 总结

Unity 中协程是个非常强大的功能,其作用主要是用于游戏中的延时调用或者执行一连串的有时间间隔的事件流程,例如剧情对话等。          看过几篇大佬的文章后,我简单总结了几点协程相关的知识点,旨在加深记忆,同时为初学者解惑。          本篇总结没有截取测试代码,不过总结的内容并不深入,建议读者亲自调试一下,印象会更加深刻。

2017-03-24 09:46:52 11096 1

空空如也

空空如也

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

TA关注的人

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