- 博客(17)
- 收藏
- 关注
原创 常用设计模式概要
设计模式之于程序员 好比 内功心法之于武林中人,了然于胸是我们最基本的素养。简单工场模式 将行为或者功能封装成对象,所谓工场即是生产这些对象的地方策略模式 封装了多个同类别功能对象的整合对象,策略对象即是选取具体行为的对象装饰模式 有效地把类的核心职责和装饰功能区分开来,而且可以去除相关类中重复的装饰逻辑代理模式 在访问真实对象之前引入一定...
2021-01-29 12:59:23
161
原创 Ray Marching
Ray Marching这是一个可以运行在ShaderToy上的简单例子#define fov 60.0#define camPosition vec3(0.0, 0.0, -4.0)#define sphereCenter vec3(0,0,0)#define sphereRadius 1.0float dist_estimator(in vec3 pos){ return length(pos - sphereCenter) - sphereRadius;}fl.
2020-07-09 15:18:34
224
原创 事件中心的例子
定义委托类型public delegate void Callback();public delegate void Callback<T>(T arg1);public delegate void Callback<T, U>(T arg1, U arg2);这里的参数数量可以继续添加,看需求。public static Dictionary<EGa...
2020-02-10 15:46:28
486
原创 Unity控制渲染顺序
Overlay的Canvas有个SortOrder的排序,这个只针对于所有OverlayCanvas之间的渲染排序,值越大渲染时机越晚。同时,OverlayCanvas的所有UI对象,都是覆盖在所有3D对象之上的(包括特效)。所以特效要在UI之上,那么UI必须在世界空间的Canvas画布节点下。 针对于所有的非OverlayCanvas渲染对象,包括3D物体,影响它们渲染顺序有三个...
2019-12-31 15:21:14
1954
原创 Unity自定义材质面板
常见属性类型UnityShader Properties常见的属性类型写法只有贴图、颜色、向量、数值等:渲染设置面板可调整然而有时候,我们希望有更多的控制shader运行的手段,如bool值或者枚举类型,或者一些渲染设置的更改。以下举例先说明渲染设置(RenderSetup)的面板可设置,这能达到针对于同样的Shader代码逻辑仅仅是RenderSetup不同情况下,代码复...
2019-08-05 10:07:04
1246
原创 uGUI之AutoLayout
创建一个ui对象Root,添加HorizontalLayoutGroup组件,在此对象下创建三个子对象,并分别添加LayoutElement组件,按照上图分别赋值MinWidth、PreferredWidth、FlexibleWidth,这里拿宽度(width)距离,height同理。并勾选Root对象上的HorizontalLayoutGroup的ChildControlsSize的Wi...
2019-06-01 11:38:38
250
原创 C# 泛型可变性
泛型的可变性只能修饰接口或者委托的类型参数;可变性分为协变性与逆变性,出于好记忆的角度,out协变可以理解为和谐的变化,in逆变可以理解为不和谐的变化。其格式为:interface MyList<out T>{}//或者private delegate A MyDelegate<out A, in B>(B tmp);委托的泛型可变性,在类型参数为返回值或...
2019-01-25 16:08:38
469
转载 互联网协议入门
这篇文章是我所见过的,互联网协议入门讲得最清晰的一篇文章。以下是一些对这篇文章个人的归纳总结,文章较杂乱仅供自己回忆:1.物理层2.链接层以太网规定,一组电信号构成一个数据包,叫做”帧”(Frame)。每一帧分成两个部分:标头(Head)和数据(Data)。“标头”包含数据包的一些说明项,比如发送者、接受者、数据类型等等;”数据”则是数据包的具体内容。“标头”的长度,固定为18字节...
2019-01-17 15:58:05
294
转载 形象理解Api和SDK
刚开始学Java的时候不理解API和SDK的区别,感觉两个东西是一样的。在看了网上一些资料以后,对这两者的概念有了一定的理解,在这里记录一下(只针对Java): API概念:API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内...
2019-01-16 17:45:46
486
原创 代码规范注意事项
类型成员的排列顺序自上而下依次为:类中需要声明的类或者结构体事件:公有事件、受保护事件、私有事件属性:公有属性、受保护属性、私有属性字段:公有字段、受保护字段、私有字段MonoBehavior函数构造函数:参数数量最多的构造函数,参数数量中等的构造函数,参数数量最少的构造函数方法:重载方法的排列顺序与构造函数相同,从参数数量最多往下至参数最少构造函数与方法的访问级别顺序也应是,...
2019-01-14 11:25:54
537
原创 委托delegate的一些细节问题
委托delegate是一种依赖倒置的调用机制假设我们有两个对象a和b,如果对象a需要调用对象b的一个函数func,那么对象a就需要取得对象b的引用,才能调用到对象b的函数func。也可以说成是,对象a提供了逻辑运行的时机,对象b提供了逻辑运行的内容。这里的依赖关系是a依赖b。同样的需求:对象a提供逻辑运行的时机,对象b提供逻辑运行的内容。通过委托的形式,我们就可以更改这种依赖关系。即对...
2018-11-12 16:56:35
317
原创 Unity Stencil 模板测试概要
模板测试与透明度测试以及深度测试类似,模板测试也是用来决定一个像素点是否渲染的过程。其中要用到的模板缓冲区与颜色缓冲区以及深度缓冲区类似,模板缓冲区可以为屏幕上的为每个像素点保存一个无符号整数值(通常的话是个8位整数)。模板测试发生在透明度测试(alpha test)之后,深度测试(depth test)之前。其中所有的测试都通过,才会更新颜色缓冲区中的颜色。一般来说,stencil完整语法格...
2018-10-30 13:52:37
1031
原创 代码评价标准参考
这篇博客并没有很好地归纳完我认同的 代码评价标准,为拿优快云1024勋章草草发布,后续会完善,还望见谅 :)好代码和坏代码的差别当一个功能被完成的时候,一个不怎么懂编程技术的老板将会从哪几个维度来评价 这个程序员完成的这个工作呢?完成这个功能花费的时间一定是其中一个要素,除此之外就是这个功能是否贴合了需求,贴合了需求之后就是测试在真实运行环境下是否运作正常不报错。我想这就是一般老板考察...
2018-10-25 17:36:14
5576
转载 C#、.NET Framework、CLR的关系
原文链接很多人没有将C#、.NET Framework(.NET框架)、CLR(Common Language Runtime,公共语言运行库)这三者之间的关系区分清楚,认为其版本号是一一对应的。其实不然,.NET框架是一个独立发布的软件包,其包含了CLR、类库以及相关的语言编辑器等工具。C#代码经过编译之后在CLR环境中运行。由于.NET框架3.0/3.5其实是.NET2.0的扩展(只是增加...
2018-10-19 16:28:58
312
原创 c#多线程
首先说明unity多线程操作的适用范围:网络请求 复杂密集的I/O操作 耗时的复杂算法计算(如网格动画)unity多线程操作的限制:UnityEngine中的API对象不能在子线程中使用(如Unity的组件、对象和系统调用) UnityEngine总定义的基本数据结构可以使用(如vector/quaternion/float/int/struct可以使用)。总的来说:对于不是画...
2018-10-11 15:05:44
251
原创 Tags
RenderType默认种类Opaque: 用于大多数着色器(法线着色器、自发光着色器、反射着色器以及地形的着色器)。 Transparent:用于半透明着色器(透明着色器、粒子着色器、字体着色器、地形额外通道的着色器)。 TransparentCutout: 蒙皮透明着色器(Transparent Cutout,两个通道的植被着色器)。 Background: Skybox ...
2018-10-11 11:08:05
362
2
原创 RenderSetup
cullback/front/offzwriteon/offztestless/greater/equal/gequal/notequal/alwaysblendblendop 混合方式 可选参数:add(默认混合操作)/sub/resub/min/max(min/max的混合因子只会是one,也就是说,无论blend后面写的是因子是...
2018-09-27 11:57:29
963
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人