自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

q493201681的博客

Unity程序员

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

原创 Unity FontSize字号单位

FontSize字体大小单位是px

2022-06-17 15:07:02 2324 1

原创 Unity多选枚举序列化

在开发过程遇到了需要将多选枚举序列化读取和写入的问题,搜了半天也没有好的解决方案.这里就自己写个吧一.序列化需要注意的点1.多选的枚举数值设置: [System.Flags] public enum BigTypes { Type1=1, Type2=2, Type3=4, Type4=8, Type5=16, Type6=64 }因为多选枚举的多选是位运算,这样设置数

2022-04-12 09:30:37 3424

原创 TimeLine正播倒播代码

将网络上的代码修了下bug,处理了一些细节文章目录效果图代码效果图代码using System;using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.Playables;public class TimeLineControl : MonoBehaviour{ public PlayableDirector timeline; pri

2021-11-02 16:35:13 1071

原创 Unity代码自动生成

这里举两个简单的例子(非原创,不选原创发布不了),第一个例子是知乎上的例子:https://zhuanlan.zhihu.com/p/30716595 自动给UI组件绑定第二个例子是自己的需求,需要根据字符串数组自动生成对应枚举脚本我只能说例子虽然简单,但是如果在往上上拓展,会极大的减少重复性的代码开发操作文章目录给Panel添加组件绑定脚本1.对应素材2.使用结果(生成脚本)3.脚本给定对应字符串数组生成对应枚举1.使用结果(生成脚本)2.脚本给Panel添加组件绑定脚本1.对应素材

2021-10-19 11:27:12 2745 2

原创 Unity中队列(Queue)和栈(Stack)的使用

队列先进后出,栈先进先出,解决简单的异步并发问题.栈辅助类网上找的,找不到原作者了文章目录一.队列辅助类二.队列Samples三.栈辅助类(基于队列进行修改)四.栈Samples一.队列辅助类using System.Collections;using System.Collections.Generic;using System.Threading.Tasks;using UnityEngine;/// <summary>/// 异步任务队列/// </summa

2021-10-11 10:26:54 5495 1

翻译 Cinemachine插件学习笔记

文章目录一.什么是Cinemachine二. Cinemachine基本功能1.导入Cinemachine2.Cinemachine所有功能三.所有相机功能1.Create 2D Camera(创建2D虚拟相机)(1)CinemachineBrain组件(2)CinemachineVirtualCamera组件2.Create Virtual Camera(创建常规/普通虚拟相机)3.Create Dolly Camera With Track(推轨相机)4.Create ClearShot Camera(

2021-05-28 19:18:34 1323

翻译 TimeLine学习笔记

文章目录一.什么是Timeline二.Timeline基本介绍四元素轨道:相应的快捷建:Timeline安装和Debug:0.轨道分组(TrackGroup)1.激活轨道(Activation Track)2.声音轨道(Audio Track)3.动画轨道(Animation Track)4.信号轨道(Signal Track)5.自定义轨道(Track Asset)1.TrackAsset基类2.PlayableAsset基类三.文档说明与官方插件一.什么是Timeline1.资源整合工具。2.可.

2021-05-26 13:53:56 1560

原创 Unity2019自动添加tag和Layer

Unity2019自动添加tag和Layer之前的雨凇MOMO的脚本2019用不了,搞了半天,终于搞好了。总的目地还是unitypackage被别人导入的时候,自动添加tag和layer。using System;using System.Collections;using System.Reflection;using UnityEditor;using UnityEngine; public class ProjectInputAddTagAndLayer :AssetPostpro

2021-01-28 11:46:57 671

原创 Unity模型上动态展示UI标签(续)

很久没更新微博了,很长时间了,之前的模型上动态展示UI标签下面很多评论要demo的。这次就把之前的功能做了优化,在发一次。文章目录1.改进内容2.对应素材3.相应效果LeftTop:LeftBottom:RightTop:RightBottom:锁定状态:4.对应代码5.UI最先层级显示Shader6.相关demo下载1.改进内容1.首先是让标签有四个方向的展示。2.增加锁定,让标签与模型一起,不随摄像机旋转。3.特殊开发环境下无法通过增加摄像机分层的情况下使用shader让UI优先显示。2.

2020-11-23 20:01:40 1997 2

原创 Unity优化思路

最近工作中聊到了一些Unity优化方面的问题,这里觉得有必要把自己过去关于优化的知识整理整理,写一篇博客。优化大体上在我这里分为四个部分:资源优化,渲染优化,代码优化,其他优化。文章目录1.一些必要的前置知识了解(1)CPU和GPU分工(2)U3D批处理的静态与动态2.资源优化(1).标准化资源(2).存储3.渲染优化(GPU)(1).合并mesh(2).遮挡剔除(3).层级细节LOD技术...

2019-12-01 14:29:06 353

原创 Unity模型上动态展示UI标签

很久没更新博客了,已经有5个月了,这段时间的经历就像过山车一样,真他*的刺激,现在算是稳定下来了。这段时间在工作上遇了一个小问题,但是在网上搜不到解决办法,觉得有必要把它记录下来,写成一篇博客。文章目录1.需求2.解决方案1.解决UI最前端显示的问题2.解决旋转后UI连线终点在对应点上1.需求给两个UI素材,一个是标签框,一个是连线。在模型边上放置一个世界空间的Canvas,让其标注模型某...

2019-11-08 18:32:43 4112 7

原创 AssetBundle笔记

不管什么技术我们带着问题去看,可以很快的掌握它。问题也是人生终极三问:我是谁?我在哪?我在做什么?这里我把AssetBundle简称AB包。对应的是什么AB包?AB包的工作原理?商业开发中AB包会遇到的问题以及解决方案?文章目录一.什么是AB包?AB包的工作原理?二.AB包的使用步骤?---- 1.创建AssetBundles----------------- 1)标记AB包名称(命名...

2019-05-13 21:09:26 230

原创 Xlua中lua语言与C#之间的调用

Xlua学习笔记整理。还有很多没整理完,慢慢来。文章目录一.Xlua中Lua文件加载的两种方式二.CsharpCallLua---- 1.全局字段---- 2.全局table-------- (1).table为数组时-------- (2).table为字典时(键值对)-------- (3).table为类时(Class)----------------- 1)映射到class...

2019-05-13 01:36:38 5149

原创 PureMVC新手入门

PureMVC是一个Unity常用的入门简单框架,PureMVC分为标准版本和多核版本,。这里只讨论单线程下的PureMVC的学习笔记。目录文章目录目录1.什么是PureMVC2.各层的职能3.PureMVC流水线4.生命周期5.模块化协作开发6.实际开发中会遇到的问题6.PureMVC内部进一步划分7.用到的设计模式1.什么是PureMVCMVC全名是Model View Contro...

2019-05-06 17:55:32 1904

原创 Unity 3D数学基础:向量

整理一下,很重要。做个总结,留个脚印。目录文章目录目录1.什么是向量?2.加减法3.长度,单位向量和正规化4.与标量相乘5.点乘6.叉乘7.应用:------------- 1.两点间距离计算:------------- 2.第三人称控制器:------------- 3.粗略判断两向量夹角:------------- 4.向量反弹:------------- 5. 求一条直线穿过平...

2018-10-08 17:43:59 1114

原创 Unity C#基础:反射

路还很远,虽然望不到边,但至少一步一个脚印目录目录1.什么是反射?2.发射的用途:3.反射的用法实例:4.反射的缺点:1.什么是反射?是指程序访问,检测和修改它本身状态的一种机制,还可以动态创建实例并执行其中的方法。2.发射的用途: 类 型 作用 Assembly 定义和加载程序集,加载程序集清单中列出的...

2018-09-11 12:04:49 6811

原创 Unity C#基础:委托与事件

在面试中,委托与事件几乎是必问的。如果面试官和面试者互不相识,面试官不问委托,那我严重怀疑这家公司的技术水平,这个可以说是C#入门与掌握的分水岭之一,非常重要。所以,这里我整理一片笔记,对委托和事件做一个全面的整理和归纳。这里重在理解,只有理解了才能真正掌握它。目录目录1. 为什么C#会有委托事件?2.观察者模式的缺陷:3.为什么要费这么大劲?1. 为...

2018-09-03 18:12:07 10693 1

原创 设计模式:二十五.迭代器模式

迭代器模式(Iterator Mode):是行为模式的一种,在.net中,有两个不得不提的概念:枚举数(IEnumerator)和可枚举类型(IEnumberable).枚举数是可以被迭代循环的数,是IEnumerator类型。通过可枚举类型IEnumberable的getEnumberator()方法得到。要使用foreach遍历类,必须让类实现IEnumerable接口,并且创建一个继承Enu...

2018-08-21 21:12:21 151

原创 设计模式:二十四.访问者模式

访问者模式(Visitor Mode),我们使用一个访问者类,它改变了元素类的执行算法,通过这种方式,元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型设计模式。根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作。这里不得不提一下双分派,c#并没有分派的概念,至少我搜索并没有。突然出现一个新的词汇也有点不适应,感觉也不太好理解。所以这里我只理解访问者模式...

2018-08-21 12:01:38 180

原创 设计模式:二十三.模板方法模式

模板方法模式(Templeate Mode):一个抽象类公开定义了执行它的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。通过吧不变行为搬移到超类,去除子类中的重复代码来体现它的优势。模板方法模式就是提供了一个很好的代码复用平台。当不变和可变的行为在子类实现混合在一起的时候,不变的行为就会在子类中重复出现。我们通过模板方法模式把这些行...

2018-08-20 17:07:48 151

原创 设计模式:二十二.备忘录模式

备忘录模式(Memento Mode)时行为模式的一种,它由三部分组成:发起者类,备忘录类,管理者类.给用户提供一种可以恢复状态的机制,实现进度保存,回退等功能。目录目录1. 意图:2. 如何使用:3. UML模板:4. 代码:5. 实例:1. 意图:定义:在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将...

2018-08-20 11:53:12 145

原创 设计模式:二十一.解释器模式

解释器模式(Interperter Mode):属于行为型模式的一种。这种模式实现了一个表达式接口,该接口解释了一个特定的上下文。这个模式有两个概念比较难理解,就是终结表达式和非终结表达式。在这里我整理了一下对这两个词的解释。 终结表达式 非终结表达式 通俗的说就是不能单独出现在推导式左边的符号,也就是说终结符不能在进行推导。不是终结符的都是非终结符,是不可拆分的最小元素...

2018-07-25 19:33:59 139

原创 设计模式:二十.组合模式

组合模式(Composite Mode):组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。这种模式创建了一个包含自己对象组的类,该类提供了修改相同对象组的方式。目录目录1. 意图:2. 如何使用:3. UML模板:4. 代码:5. 实例:1. 意图:又叫部分整体模式,是用于把...

2018-07-25 10:56:42 122

原创 设计模式:十九.命令模式

命令模式(Command Mode):是一种数据驱动的设计模式,它属于行为型模式。将一个请求封装为一个对象(即我们创建的Command对象),从而使你可用不同的请求对客户端进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。把一个复杂的操作封装成一个命令,由命令去操作。 命令模式由四部分组成: 1.抽象命令(Command):定义命令的接口,声明执行的方法。 2.具体命令(Concr...

2018-07-23 22:24:44 156

原创 设计模式:十八.适配器模式

适配器模式(AdapterMode):属于结构型模式的一种。他和代理模式非常相似,代码层面非常相似,这里是相似,并不是相同。创建一个新的继承父类的对象,在对象里建立一个私有的需要代理/适配的对象,然后按照原来子类的功能进行补充和完善。它们还是有比较明显的区别的。 代理模式 适配器模式 原类和代理类继承同一父类 只有适配继承目标接口 原类对象与代理对象接口相同,...

2018-07-23 12:42:08 163

原创 设计模式:十七.桥接模式

桥接模式(Bridge Mode):属于结构模式的一种。看过我上篇策略模式时会发现它们在代码层面非常相似,UML图长的一模一样,它们写法完全一模一样。我们完全可以将它放在一起记忆。记一下区别就好了。桥接模式属于结构型模式,策略模式属于行为型模式,从分类上看侧重点不同,前者强调结构,后者强调行为。前者强调抽象与实现的分离,后者强调算法可替代。桥接模式是调用端和被调用端都可以变化,策略模式是只有被调用...

2018-07-21 18:58:28 697

原创 设计模式:十六.策略模式

策略模式(Strategy mode)是行为模式的一种,用来封装算法的,但是在实践中,我们发现可以用它来封装几乎任何类型的规则,只要在分析过程中听到需要在不同时间应用不同的业务规则,就可以考虑使用策略模式处理这种变化的可能性。任何需求的变化都是需要成本的,高手和菜鸟的区别就是高手可以花同样的代价获得最大的收益或者说做同样的事花最小的代价。面对同样的需求当然是改动越小越好。这里又不得不提反射,看来也...

2018-07-21 11:44:00 197

原创 设计模式:十五.对象池模式

对象池模式(Object Pool Mode),是创建模式的一种。本来的五个怎么变成六个了。2333,它和享元模式非常相似,只不过享元模式一个对象可以被多个对象引用,对象池模式一个对象只能被一个对象引用。它是Unity脚本开发中非常常用的模式,对于反复创建销毁的游戏物体使用对象池模式可以大幅提升游戏性能。比如子弹,怪物等等。它和有限状态机一样都有代码框架。这里我也整理了两种对象池代码框架的写法。...

2018-07-20 17:48:33 2532

原创 设计模式:十四.享元模式

享元模式:是结构型模式中的一种. 享元模式英文称为”Flyweight Pattern”,我非常感谢将Flyweight Pattern翻译成享元模式的那位强人,因为这个词将这个模式使用的方式明白得表示了出来,如果翻译成为雨量级模式或者蝇量级模式等等, 虽然可以含蓄的便显出使用此模式达到的目的,但是还是没有抓住此模式的关键。享元模式广义上的定义为:采用一个共享来避免大量拥有相同内容对象的...

2018-07-20 15:28:12 183

原创 设计模式:十三.原型模式

原型模式(Prototype Mode):是五个创建模式中的最后一个。原型模式其实就是从一个对象再创建另外一个可定制的对象,不需知道任何创建的细节。每new一次,都需要执行一次构造函数,如果构造函数的执行时间很长,那么多次的执行这个初始化操作就太低效了。一般在初始化的信息不改变的情况下,克隆是最好的办法。这既隐藏了对象创建的细节,又对性能是大大的提高。这里就有了浅拷贝和深拷贝的概念。目...

2018-07-16 12:19:33 177

原创 设计模式:十二.单例模式

单例模式(Singleton Mode):是创建模式的一种。是游戏开发中经常用的模式。甚至可以这样说,单例模式和中介者模式混合使用可以解决小型游戏开发中大部分脚本交互问题,它简约但是不简单。目录目录1. 意图:2. 如何使用:3. UML模板:4. 关键代码:1. 意图:定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。2. ...

2018-07-14 21:59:24 198

原创 设计模式:十一.职责链模式

职责链系统(Chain of Responsibility Mode):是行为模式的一种。这个又和装饰模式很像,和装饰模式的区别是,职责链模式在跳转的时候,是不执行相关逻辑的,只执行判断条件类的代码,只执行自己职责内的代码。目录目录1. 意图:2. 如何使用:3. UML模板:4. 关键代码:5. 优化:1. 意图:将多个接收者和发送者管理起来...

2018-07-14 11:37:43 147

原创 设计模式:十.装饰模式

装饰模式(Decorator Mode):是结构模式的一种,它又与代理模式差不多,只不过装饰模式装饰类里关联的是自己的父类。并且可以多层嵌套。把所需的功能按正确的顺序串联起来进行控制。装饰模式利用关联自己的父类来对对象进行封装。这样每个子类装饰对象只关心自己的功能,不需要关心如何被添加到对象链当中。目录目录1. 意图:2. 如何使用:3. UML模板:4. 关键代码:...

2018-07-13 17:26:15 153

原创 设计模式:九.代理模式

代理模式(Proxy Mode)是结构模式中的一种,在现实生活中应用很广,比如windows里面的快捷方式,翻墙的vpn,火车票代购点等等。代理模式其实就是在访问对象时引入一定程度的间接性,因为这种间接性,可以附加多种用途。比如 1.远程代理:将一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象在不同地址空间中的事实。 2.虚拟代理:是根据需要创建开销很大的对象,通过它来存放实例化需要...

2018-07-12 21:32:47 123

原创 设计模式:八.中介者模式

中介者模式(Mediator Mode)又称调停者模式,其实就是中间人或者调停者。它和上篇的外观模式很像。中介者适用于当事者双方无能力联系或者双方不方便的场合,由中介者类和中心本身共同完成业务。外观模式以统一的接口对外提供服务,便于方便的使用为目的,所有的请求处理都会委托给子系统完成。目录目录1. 意图:2. 如何使用:3. UML模板:4. 关键代码:5.与外观者...

2018-07-12 17:45:46 167

原创 设计模式:七.外观模式

外观模式(Facade mode)。外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便。外观模式中,一个子系统的外部与其内部的通信通过一个统一的外观类进行,外观类将客户类与子系统的内部复杂性分割开,使得客户类只需要与外观角色打交道,而不需要与子系统内部的很多对象打...

2018-07-11 21:19:11 116

原创 设计模式:六.建造者模式

目录目录1. 意图:2. 如何使用:3. UML模板:4. 关键代码:5. 实例:1. 意图:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。2. 如何使用:需要生产的对象具有复杂的内部结构。 需要生成的对象内部属性本身相互依赖。 分为三部分,建筑师类,抽象建筑类,产品类。3. UML模板:4....

2018-07-11 17:00:23 152

原创 设计模式:五.有限状态机(FSM)

有限状态机英文全称Finite State Machine,它的应用及其广泛,虽然主要是在Unity中的应用,但是核心内容无论你是用C#,java,Object—C都是一样的,这也是我这笔记的目的。目录目录1. 意图:2. 定义:3. 如何使用:4. UML模板:5. 关键代码:7. 实例:8. 参考:1. 意图:对对象状态间的行为和转化...

2018-07-11 10:19:37 3751 1

原创 设计模式:四.状态模式

面向对象设计其实就是希望做到代码的责任分解,方法过程如果过长将会变得难以扩展和修改。这样是状态模式的目的。状态模式是行为设计模式的一种。当然这里还有由状态模式演变而来的有限状态机。目录目录1. 意图:2. 如何使用:3. 定义:4. UML模板:5. 关键代码:6. 实例:6. 扩展(FSM有限状态机):1. 意图:将代码中大量与对象有关的...

2018-07-01 16:10:20 155

原创 设计模式:三.观察者模式

观察者模式是经常用到的设计模式,他也经常和委托事件混在一起,但是就像程序代码是从上往下执行的,是先有观察者模式,再有委托。还是先有委托,再有观察者模式。很显然,当我们先学委托的时候,认真学过几次,发现怎么也学不太懂,是我们理解不行,还是说我们学习顺序搞错了。就如同上篇抽象工厂模式中为规避swich或者if else语句不符合开闭原则而使用反射一样?之后可能也会委托和反射的笔记。观察者模式(...

2018-06-30 22:58:24 161

空空如也

空空如也

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

TA关注的人

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