自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【ZProRx 重装上阵】前序 家族

ZProRx 框架简介面向属性的编程框架,以属性为基础,构建属性网,同时结合反应式编程、链式编程。特点:基于UniRx反应式的属性框架。 基于面向切片的编程思想,通过修饰(Attribute)配合属性,提供附加信息定义,比如:实现属性间的关联 支持与View(Unity)的绑定。用于表现层的分离(MVC框架等)。UniRx的ReactiveProperty也有类似的功能。 但ZPr...

2020-03-08 22:14:04 497

原创 【ZProRx 重装上阵】 第四回 网络

Net 网络ZProRx 包括Socket 和Http的封装支持。Socket使用Topic进行消息的发送与订阅,分为客户端与Server端两种情况。 数据包使用的共通的NetPackage结构,其模板使用可以用于扩展支持自定义的数据。 public class NetPackage<T, TErrorEnum> // where TErrorEnum : Sy...

2020-02-27 23:00:19 319

原创 【ZProRx 重装上阵】 第三回 绑定

表示层ZProRx 架构也是类似MVC的分层,这一节主要介绍如何实现表示层与数据层的绑定。目前只支持与Untiy表示层(UGUI/GameObject)的绑定。绑定 Unity Bind把属性与Unity元素进行Bind 这部分提供了如何与UI能进行自动化的绑定,动态更新等机制,同时对一些常用框架的支持,比如上接UGUI、向下与UniRX、ZECS等架构对接。同时也支持创建动态UI...

2020-02-26 22:36:36 296

原创 【ZProRx 重装上阵】 第二回 矩阵

上一节主要介绍ZProperty的单体结构,这一节主要说明属性间的关联。Link(属性)关系分类可以定义属性与属性间的关联,方便基于属性框架的开发。主要的关联关系包括:聚合、关联、视图接口与聚合即通过一个属性引用另一个类的对象。 ZP内容类支持 接口(interface)做为值(Value),如下所示 多用于引用一个对象,即可以理解为对象间的关联。(UML中的聚合或者组合的关系)...

2020-02-26 22:06:27 220

原创 【ZProRx 重装上阵】 第一回 重构

前序本框架在原ZP框架基础上重构而来,基本思路属性即数据,其核心还是面向数据。重构过程中陆续把相关代码开源详细参考:https://github.com/bennychao/ZProRx.LibZProRx框架简介面向属性的编程框架,以属性为基础,构建属性网,同时结合反应式编程、链式编程。特点:-基于UniRx反应式的属性框架。-基于面向切片的编程...

2020-02-26 22:01:00 404

原创 .NetCore + Unity = 未来

Unity服务器端代码的选择问题,有很多。本人比较喜欢用Golang。但是从写了ZP框架之后,写BackEnd时,发现很多情况要把Client的C#代码使用Go翻译一遍,很是浪费时间。如果C#代码直接复用到BackEnd是最高效的了。在.NetCore之前其实已经有很多方案。mono.Net就是.Net的开源实现,它就是为了支持不同平台而诞生的。但它由不是MS的亲儿子,性能常常被诟病。(Uni...

2019-01-21 15:21:07 7716

原创 Unity Shader 案例之 镜面材质制作

打开镜像世界我们在Unity里打开镜像的世界呢,原理很简单,我们再加一个Mirror Camera就可以了,其位置是我们当前Camera相对于镜面的一个镜像的映射(Transform)。镜像矩阵这个概念比较复杂,记公式就可以了。有了公式,代码就好写了public static void CalculateReflectionMatrix(ref Matrix4x4 reflecti...

2020-03-30 13:37:43 3097

原创 NLog NETCore 3.0 Porting

NLog NETCore 3.0 Porting这里简单整理一下,NETCore 3.0 + NLog工程移植过程中遇到的问题。Configuration以下代码才能编译通过using Microsoft.Extensions.Hosting;public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IL...

2019-10-29 21:43:18 1046

原创 UniRX/Reactive 反应式编程 三元素

主要介绍UniRX主要的元素

2019-10-26 08:17:52 364

原创 C# System.Reactive 特性

Scheduler的用法 Task.Run(async () => { Console.WriteLine("Task.Run! " + Thread.CurrentThread.ManagedThreadId.ToString()); Observable.Timer(T...

2019-07-13 17:20:20 3801

原创 Unity LWRP学习之Command Buffer 与 Shader Graph SceneColor

CommandBuffer的相关内容参考如下,其用于扩展Build-in的管线,(LWRP中是否好用呢?)https://docs.unity3d.com/Manual/GraphicsCommandBuffers.html总结几点:public void OnWillRenderObject() 中创建CommandBufferbuf.Blit (BuiltinRender...

2019-06-13 14:36:34 3562

原创 Unity LWRP 学习之 RenderFeature

RenderFeature是一种扩展LWRP的方法。该方法还是实验版。实现管道的参数的定制,其好处就是不需要修改物体的Shader,比如要实现一个如下图的显示隐藏背后的轮廓的需求。通常是需要修改对应的Shader的,使用两个Pass进行绘制,一个画正面,一个画轮廓,正面使用正常的Pass就可以,轮廓需要关闭Depth Test设置。如果有RenderFeature,或者SRP,那就不需...

2019-06-13 13:15:34 4376

原创 Golang与各语言横向比较

1. 指针 GolangVS C++golang的指针可以说是安全版、简化版的C++指针,虽然是指针你也不会去关心其内存的释放问题,有两种方法返回一个指针。1、make只能用来分配及初始化类型为slice,map,chan的数据;new可以分配任意类型的数据2、new分配返回的是指针,即类型*T;make返回引用,即T;其用法更像是定义了一个引用。Struct的This...

2019-03-16 15:16:20 703

原创 Unity后端Server实现方案

引言在Unity与NetCore使用方案中https://blog.csdn.net/FeiBin2013/article/details/86574687讨论过如何在NetCore中使用UnityEngine 库的问题,本文进行更加详细的调查。先还是尝试使用注入的方式替换部分Native底层Unity注入GameObject实践本文以CreatePrimitive方法为例...

2019-03-16 15:14:02 4905

原创 程序员学习ZBrush笔记

整理知识点如下:分组1. 如何进行分组?【经验】选择组,在组间进行切换,按【组选择】可以在开启frame显示【shift+f】的情况下,按【ctrl+shift+鼠标左键】点击,这样就可以单独选择某一个组的面。【经验】分组:先使用【Ctrl+ Shift】选择一些面,然后使用 【选择组】&gt;【可见组】进行当前选择面的分组。也可以使用【Zmodler】进行选择面的分组,其中...

2019-03-16 13:55:02 2008

原创 NetCore下ZP的环境配置

程序集:LitJson UniRx UnityEngineNuGet: MQTTnet MySql.Data如果是Net.Standard Dll还需要加入 <PackageReference Include="MySql.Data" Version="8.0.16" /> <PackageReference Include="MQTTnet" Vers...

2019-02-26 21:54:23 461

原创 Unity中使用Mqtt协议进行通信

常见游戏后端BackEnd支持协议越来越多,比如HTTP、TCP、UDP、MQTT等。各协议各有优点。mqant框架可以使用Module对Beego进行封装。注意:使用_ "cpvrtapp/routers”进行初始化,不然是不能行的,没有调用InitMQTTNethttps://github.com/landbroken/MQTTLearning做为最基础的协议支持吧...

2019-02-15 08:45:23 6665 5

原创 .NetCore下使用DllImport 加载动态链接库

 .NetCore下DllImport 环境MacC++代码,注意一定要使用extern “C”,不然由于Cpp文件是要使用C++编译器的,这样导出函是数加一些后缀的,造成C# 找不到Entry Point出错。#ifndef Test_h#define Test_h#include &lt;stdio.h&gt;class TestC{public: int...

2019-02-02 14:21:18 3818 2

原创 Shader Graph第一个

Shader Forge还是正式在2018.3不能使用了。。。无奈之下只能开始使用Shader Graph。第一个效果:Fresnel + HighLight 提示关于Shader源码的查看,CopyShader菜单就可以了,然后在VS中粘贴。代码如下:有很多LightWeight的引用,不能在非LWRP环境中使用。Shader "Unlit Master"...

2019-01-16 15:34:09 2204

原创 Dotween Pro简单评测

Pro版本其实就是使用可视化配置,基本功能与Free版基本一致。其有两个核心组件:Do Tween Animation/Do Tween Path。Animation组件支持多个同时控制同一对象,来实现复杂的组合动画。通过ID进行标识。如上,主要方法,可以通过脚本进行调用。其中比较常用的如下:DoPlay:会触发当前对象下所有的Animation组件开始动画,如第一图所示,...

2019-01-03 14:59:13 4157

原创 LightMap与Light Probe应用

1. LightMap支持多场景,这样可以解决,LightMap单张最大4096分辨率的限制。但如果这时使用Probe会有问题,2. 如果动态物体到了没有Probe区域,也会显示最近的Probe的光照,无论多远。如下图所示。再移动物体,其光照不变。所以要保证动态物体的运动范围内都有Probe。 3. Probe没办法产生阴影如上图只有黄色实时光的阴影,红色Bak...

2019-01-03 14:43:57 769

原创 自定义TimeLine

TimeLine其强大的地方就在于其扩展性,其中ChineCamera就是支持其扩展。默认只支持以下几个有限的功能。大部分还是需要我们自己进行扩展,才能发挥出TimeLine的潜力。本文以一个简单的Rotate 的Playalbe 为例:PlayableAsset代码如下:using System.Collections;using System.Collections.Gen...

2019-01-02 15:21:44 742

原创 ZProperty框架——视图与关联

面向数据开发数据驱动编程的核心:数据驱动编程的核心出发点是相对于程序逻辑,人类更擅长于处理数据。数据比程序逻辑更容易驾驭,所以我们应该尽可能的将设计的复杂度从程序代码转移至数据。数据驱动是一种思想,数据驱动型编程是一种编程范式。基于数据驱动的编程,基于事件的编程,以及近几年业界关注的响应式编程, 本质其实都是观察者模型。数据驱动定义了data和acton之间的关系,传统的思维方式是从act...

2018-12-27 17:24:23 363

原创 UniRX FromEvent的用法

我们大使用Delegate时,需要考虑其反注册操作。写代码以下几个问题,总会造成困扰。1. 反注册很爱忘记2. 有时也不好进行反注册,比如使用Lambda给一个委托赋值时。所以Unity也是考虑这个原因,才使用UnityEvent吧(这个也得自己反注册)。3. 有时不知道向谁反注册。比如,向一个局部变量的委托进行注册,如果再想反注册就得再加一个其成员变量,加重了代码的偶合度。这里介...

2018-12-24 11:14:32 1100

原创 Shader Forge实现聚光灯舞台效果

聚光灯的开销是很大的,现在通过Shader 实现聚光灯舞台的效果。其主要思路是中间亮边缘暗的效果。引入a, b两个参数,如下图,X轴是距离中心点(舞台中心点)的距离,到达a点时,开始变暗,到达b点时,变为黑色,或者透明。我们可以把函数分为三段,下降的部分,我们可以要所根据点斜式求出其方程,通过与min和max两步,得到另外两段的函数。使用ShaderForge如下:Vector...

2018-11-24 22:32:41 1407

原创 CameraUtil工具类简介

介绍一些Camera相关的方法:水平FOV我们知道Camera的fieldOfView(FOV)属性是垂直-垂直-垂直(重要的说三遍)方向上,投影矩阵(Project Matrix)上平面与下平面的夹角,默认为60度。我们这边引入水平FOV的概念,有一些时候这个更常用到,其实我们平时所说的可视角应该指的水平FOV。下面介绍一下它们的一些特性以及获取方法。1. 不同设备Size是...

2018-11-24 15:48:01 1375

原创 UGUI判断一个点是否在UI上的方法

public bool IsOnUI(Vector3 pos) { GraphicRaycaster caster = gameObject.GetComponent&lt;GraphicRaycaster&gt;(); PointerEventData pData = new PointerEventData(EventSystem.curre...

2018-11-24 14:14:31 952

原创 Mac下配置Docker——Mysql

下载docker pull mysql默认下载的是8sudodocker run --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql目前使用Mysql8的Image,使用客户端连接会出现以下错误分析原因是由于Mac本地使用的Mysql5.7的Dirver。无法访问Mysql8。下载5....

2018-11-15 10:45:28 339

原创 Mac环境下的Docker基本配置

安装Dockerhttps://store.docker.com/editions/community/docker-ce-desktop-mac注意:这个就是所谓的Docker Desktop直接安装配置阿里云加速器https://dev.aliyun.com/detail.html登录后,点击一个镜像后,右边有加速地址,你的账号内,所有镜像都是一样的,这个地址在管理中心...

2018-11-14 15:19:03 4025

原创 Go与C/C++的交互

 CGO简介golang与C有着千丝万缕的联系,go代码中可以调用C代码由于项目需要,新使用的golang语言需要调用C语言写的加解密函数,所以用到了cgo,在此记录一点使用心得如何调C代码,按C代码的结构分为以下几种内嵌式非常简单,只需要两步在golang代码开始部分(package xxx之后),添加注释,注释中编写需要使用的C语言代码 紧挨着注释结束,另起一行增加...

2018-11-03 15:25:57 7909

原创 IOS证书与发布的那些事

每次开发新的IOS App证书都要折腾一遍,现在整理一些需要注意的地方。各种证书的概念,参考如下,这里不再科普。https://www.cnblogs.com/CoderAlex/p/5033852.html证书个数的限制开发者申请证书个数是有限制的,最多3个。如果大于3台开发机使用的话,如何办?https://www.cnblogs.com/wangbinios/p/57...

2018-10-31 23:02:13 309

原创 Unity 集成原生IOS IAP功能2——异常处理与调试

当IAP的功能实现了基本流程,还需要大部分的时间来处理异常操作。连续多次点击购买处理一:可以判断当前PaymentQueue中是否已经有了购买请求(是只当前未处理完成的) __block BOOL bFind = NO; [[[SKPaymentQueue defaultQueue] transactions] enumerateObjectsWithO...

2018-10-30 15:49:32 404

原创 Unity 集成原生IOS IAP功能

IAP配置过程第一步:需要配置银行、税务等信息。第二步:在App Store Connect上配置App的购买项内容。第三步:代码第四步:Test,需要使用沙盒测试,App Store Connect上的用户与账号中添加。中文参考https://www.jianshu.com/p/7ae9654b85eehttp://nightfade.github.io/2015/0...

2018-10-28 15:15:32 731 4

原创 XCode垃圾清理

15年Mac,128G只余下2G空间时,马上就是买硬盘了。。。这时发生了。。。。。神一样的命令du -d 1 -h从用户下的Library(注意这里一定是用户下,而不是根目录的Library目录)开始一层一层一层的剥开你的心发现都是XCode的大大垃圾。。。各种历史的Build生成。各种历史版本的模拟器镜像。各种历史程序的LOG和数据。。。你不用客气,大大方方的删除就是...

2018-10-26 15:00:33 910

原创 ZProperty属性封装类——融合Bolt可视化插件2

1. PropertysOfObject结点定义Object的属性列表结点,做为前文PropertyValue和PropertyChanged结点的输入。以免去手动输入PropertyID,容易出现误输入。Object的Type可以通过HeaderInspectable(即头部可配置区域)进行定义,参考以下Bolt中的定义。        [Inspectable, Serializ...

2018-08-09 16:18:39 285

原创 ZProperty属性封装类——融合Bolt可视化插件

本次主要针对以下几个问题进行优化。1. 常用函数方法封装,通过反射机制进行调用。Unity的Start Update等,应该也是使用反射的机制。比如OnCreate、OnLoad、OnBind OnUnbind、OnDestory等生命周期函数。有关反射调用方法参考以下https://www.cnblogs.com/coderJiebao/p/CSharp09.html这里通过反射...

2018-08-09 13:00:34 421

原创 ZProperty属性封装类简介

有关属性使用的封装,包括功能,修饰、持久化、表现层绑定等。类图如下: 附加Attribute修饰属性在使用时会带一些附加信息,描述信息也有一定的层次的,包括:名称、简介、详细描述、图片介绍、链接等多种形式。即属性又由其子属性组成。属性的附加信息,可以通过Attribute类【标签】来加以定义。但属性的这些信息,每个属性不能不同的类实例都自己保存一份,那样开销很大的。所有本例中使...

2018-06-28 14:25:45 453

原创 ZGrid方格容器类的简单介绍

有关IEnumerable的使用方法,其中Unity有其特别的地方,可以参考以下文章 https://blog.csdn.net/qq_30695651/article/details/79105332有关IEnumerable的其它C#语法的说明https://blog.csdn.net/chengmin1989/article/details/63255908...

2018-06-14 08:59:19 582

原创 关于Probuilder的简单使用评测

主要是对比一下与主流的建模工具上,Probuilder什么特点。当然只是对应3DMax中基本的网格修改器和ZBrush中的Zmolder手动拓扑笔刷。从下面的操作界面,左侧场景中的UI,可以进行网格编辑的四种类型,这个与3DMax中是相同的,分别对应体、点、线、面。选择不不同操作类型后,右侧的功能菜单会有变化,包括一些共通的东西。可以看出,Probuilder是使用插件的方式集成到Unity中的,...

2018-06-08 14:20:50 10858

原创 Shader Forge Clamp与Remap的区别

其实Clamp这种只是对区域进行了截断处理,还不是进行重新Remap。如下图可以看到Remap与Clamp的区别,以下Remap的使用几个结点进行替换的方案。另外,相关的还有Fmod取模函数,它可以把一个任意大小的值映射到一个范围内,再与以上两个方法进行配合使用。...

2018-05-23 18:03:12 4033

ZStatus Unity 状态机插件源码

ZStatus Unity 状态机插件源码,目前只是一个Demo版本。代码可能还有一些BUG和不完善的地方。

2017-06-11

空空如也

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

TA关注的人

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