自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zebin的博客

focus on unity

  • 博客(209)
  • 资源 (4)
  • 收藏
  • 关注

原创 NGUI扩展之 图片置灰

在属性 面板添加一个小功能,置灰属性。设计思路很简单, 就是通过勾选或者不勾选,实现置灰 或者不置灰。包括对scroview的置灰等等…实际上,在NGUI中 所有需要渲染的 物体 都继承自 wight,而编辑器 部分则 作用于它。在UIWidgetInspector 中。这个脚本作用于 UIWidget, 而我们 知道所有需要渲染的元素都继承自 UIWidget 包括sprite可以找到这个, DrawInspectorProperties 画属性面板的 属性,我们就可以在里面进行 画

2020-09-10 00:51:05 700 2

原创 UnityUGUI源码阅读之Graphic

关于Graphic组件Graphic组件是UGUI中比较重要的一个组件它必须要要有 CanvasrRenderer组件以级RectTransform 组件RectTransform 是用来 存储Rect的信息的,锚点,轴心,宽高,缩放,旋转,这个组件几乎所有组件多会使用,除了一些事件层的,比如各种事件处理器,anchoredPosition 以级sizeDeltal 用的比较多。它是用来渲染 画布元素的一个比较重要的组件。CanvasRenderer 当然不用说了,如果 没有这个组件,是

2020-06-23 23:59:17 1880

原创 二叉树的遍历C#实现,递归以及非递归

二叉树的前序遍历规则是从根节点开始,依层 逐层取 左子节点,若此节点没有 左子节点,说明此节点是叶子节点,往上 回溯, 取 最小父节点的右节点,再重复 此步骤,取左子节点。直到 没有左子节点,也没有最小父右子节点,递归版本 比较好记,也容易理解, 只要节点不为null 先取 左子节点,后取右子节点。 public void TraversingBSTree2<T>(BSNode...

2020-01-06 10:04:49 1250 1

原创 关于Unity中渲染的优化

前言最近在看shader入门精要一书,里面大概指出了GPU的优化,入门精要嘛。翻阅官方文档,和参考一些博文,比较杂,因此,很有必要整理,这篇文章主要是针对渲染相关的,和CS脚本,CPU无关。正题U3D开发项目 意味着需要使用多个工具,插件,开源库,第三方库,这个时候优化就显得比较重要了,尤其是在硬件不是特别好的移动端上,因此性能优化就显得格外重要了,有些游戏经常出现闪退,卡死,这些 都和优...

2019-11-19 01:50:34 447

原创 Lua协程实现原理

相关 APIAPI 传入参数 返回值 说明API传入参数返回值说明create(f)函数,作为协程运行的主函数返回创建的协程如果还需要运行,需要使用resume操作resume(co,[val1,…])传入第一个参数是create函数返回的协程,剩下的参数是传递给协程运行的参数。分两种情况,resume成功的情况下返回true以及上一次 yield函数传入的参数;失败情况下返回false,以及错误信息 第一次执行resume操作时,会从creat

2021-01-28 19:39:37 3819

原创 有效的数独

LeetCode 之 有效的数独判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 ‘.’ 表示。输入:[[“5”,“3”,".",".",“7”,".",".",".","."],[“6”,".",".",“1”,“9”,“5”,".","."

2020-10-02 18:23:55 292

原创 lua表深拷贝和浅拷贝

lua表是 一种常用的 数据结构, 底层实现分为散列表和数组表 可以理解为 引用类型,也就是说,如果把 一个表的对象赋值给另一个 变量,那么得到的其实是这个表的内存地址。local t10={1,2,3,4,5,6}local t9=t10t9[1]=10print(t10[1])这里会打印10那么深度拷贝需要如何实现?1)递归首先遍历一个表,判断它的值是否是 一个表,如果是一个表进行递归拷贝,这里需要考虑一种情况, 就是带环的情况。什么是环:一个简单的例子:local t={1,

2020-07-12 15:31:09 2402

原创 基于C#的堆排序

堆是一种完全二叉树,也叫二叉堆。分别分为两种类型: 最大堆 以及 最小堆;最大堆(大顶堆), 所有父节点都大于子节点最小堆(小顶堆), 所有父子点都小于子节点右为 大顶堆,左为 小顶堆,根节点叫堆顶 , 根节点一定是 整个堆中 最小/最大的。堆排序利用这个 特点进行排序。每次 它调整后, 最大的元素 或最小的元素 总是排到第一位去,那么 可以让最大 节点 存储到它 最大...

2020-01-10 12:15:52 2204

原创 KMP算法笔记

public static void KPM_Next(string t, ref int[] next) { int i=0,//i是 字符串的指针,从 0到 length j = -1;// 即用来存储匹配的数量 又来当作回溯指针 next[0] = -1; whil...

2020-01-04 11:16:52 164

原创 C#中的位运算

(10-2>>2) ==> 8 /4 =2“>>” 这里右移 一位就是表示 除以2的一次方右移两位 就是表示 除以2的二次方。“<<” num 左移 就是表示 乘以2的 num次方不使用右移 计算count += (count+1)/16;1000000 次 耗时 单位(Ticks)使用 右移 计算count += (count+...

2019-12-29 21:02:42 154

原创 Unity资源的卸载

Asset是什么?游戏中具体的资源,像texture,mesh,material,shader,script等,实实在在的游戏项目文件夹中所需要堆放的资源。 它们都 UnityEngine.Object的子类 GUID 是它们的id  如果不是在主线程里的 会报错,自己可以用c#x写多线程访问试试。 GameObject是什么存在场景中的游戏对象,用到的时候需要被实例化出来,它持有 ...

2019-12-23 21:07:50 1818

原创 Unity底层资源加载的学习

AssetBundle打包管理打包策略打包配置表生成ab包打包工具初步加载资源池类对象池对象池

2019-12-16 16:50:19 257

原创 Unity中实现 抛物线运动

抛物线的实现有很多种,1.利用 y=sin(x) 函数 ,该函数 分布图就是 个抛物线。只要控制在 0到PI 之间 就可以得到向下的抛物线方程。x可以是个增量;不过这样得到 会比较难控制 开口弧度。 参数比较难调整;第二种,使用重力加速度模拟抛物线的。在 Awake 中初始化速度,重力// 时间=距离/速度time = Vector3.Distance(pointA.positio...

2019-12-03 09:12:35 5410

原创 ShaderNote-雾渲染学习

预览图,使用了Noise+屏幕后处理雾Unity中也有内置 的雾,在Lighting-setting下,有个fog选项。但是这种雾是非动效的,大概就是这样的。参数信息: 中文文档。https://connect.unity.com/doc/Manual/GlobalIllumination官方也是推荐使用 后期渲染来实现雾效;屏幕后处理:主要是利用 相机渲染时,对原渲染图进行...

2019-11-17 17:46:39 315

原创 ShaderNote-素描风格的渲染

效果图素描素描效果是非真实渲染章节实现的一个效果,还是蛮有意思的。实现方法主要是根据物体的光照系数,来决定哪些浅,哪些深,哪些白,然后再使用这些素描纹理,进行采样填充。轮廓线的实现,主要是顶点上的偏移,要注意的是它们是在视图空间下 完成计算的,它只计算背面,因此需要 剔除前面。主要实现在顶点作色器中计算光照系数,根据光照结果来决定6张为你的混合权重,并传递给片元作色器,然后在片元...

2019-11-16 11:40:17 274

原创 为VScode中下载好的插值写扩展智能提示。

VScode 中 写扩展方法,智能提示,关键字;最近使用vscode 发现 有些插件,语法提示不是很健全,于是就想着能不能添加,最后,发现是可行的。其实 修改插件的源码,扩展函数 就好了。其中vsCode 扩展插件目录 一般是存放在C:\Users\UserName.vscode\extensions底下。这个目录下 就是之前从插件扩展商店中 下载好的插件。我使用的插件 是shade...

2019-11-10 11:40:41 2660

原创 工作感悟

TODO:

2019-09-22 16:02:44 271

原创 游戏3D数学基础

矩阵:

2019-09-08 17:40:41 2671

原创 UnityShader基础知识

概念渲染流水线: 需要经历四大阶段: 应用阶段,几何阶段,光栅阶段,测试阶段 测试阶段分为 模板测试,深度测试概念流水线的完整描述在ShaderLab中的关系应用阶段相对于shaderlba里的 a2v (applydata to vertex); 指的是传递给顶点着色器的 模型的应用数据;几何阶段相对于shaderlab里的 vertex;光栅化阶段相对于 shaderl...

2019-08-24 09:54:13 355

原创 Lua中多继承,以及OOP实现;

lua中的 多继承lua中多继承的实现是通过把__index设置为一个查找函数,然后lua的查找机制是会先从原表里去查,查不到就通过__index去 元表里查询,如果 __index是个函数 就执行函数,取得返回值;因此,多继承可以通过把__index设置为一个查找函数 来实现;function class(className,...) local c={} local p...

2019-07-28 21:03:30 540

原创 大话设计模式的学习记录

虽然之前在学校的时候又看过一次设计模式,后来又没能成为主程序… 在一家游戏工作室写游戏UI逻辑… 因此这设计模式会忘记掉,所以需要每次回过头来重新再学习一下,目前已经过半了。学习这条路是不能停止的。另外,在学习的时候,可以使用思导图,把大概的,重要的提取出来。github可以提取...

2019-07-20 15:53:04 138

转载 NGUI里3D粒子混用出现的剪切问题

近期 开始对项目的维护,因为项目用的是NGUI ,而NGUI里面,对3D粒子 的剪切支持不是很好,因此上网查了一下,发现很多人都有 遇到这个问题,应该是个,也有很多人都解决了,思路就是在awake/start 的时候获取scrollview里面的值,然后传进粒子的sharder里面做裁剪就可以了。这边 就转下了,测试过了直接用 原作者的,也是可以的,也可以在其基础上做优化。下面是原文http...

2019-07-19 22:17:54 244

原创 Unity Mathf.RoundToInt 左开右闭 银行家算法

四舍五入与 银行家 四舍五入小数 float double 转型 int 类型int 会 丢掉小数部分, 比如 (int)5.5f 结果是5mathf. .RoundToInt() 把 int 4四舍五入, 遇到 偶数放回放 偶数。11.5f 返回 1210.5f 返回 10为什么要这样做的原因 转:http://blog.itpub.net/2951290...

2019-07-03 10:43:50 7695

原创 连连看 算法 总结

连连看 算法 总结首先 连连看 是 一款休闲小游戏,非常适合锻炼算法,一门语言的入门 也是不错的,首先是 匹配算法, 匹配函数需要 接受两个 位置 进行 取得数据进行匹配,取得数据 就只是 访问数组,因此 只要先判断这两个值 是否一样就 可以进行下一步匹配。检测函数 很简单判断结果 是否相同, 是否越界public0拐点分 垂直遍历,水平遍历垂直遍历:水平遍历:1拐点:一...

2019-06-30 15:16:55 3641

原创 无题

关于 千与千寻的感悟, 谨此记录下自己的思绪,思绪来的快,去的也快, 以下观点仅代表2019.6.22的看法最近看了千与千寻,感触挺多的,从一个懵懵懂懂 涉世未深的 小女孩,再到经历这个汤婆婆世界,收获成长与爱。关于小时候之前看电影 匆匆忙忙看完,也没有 ,过多的思考, 这是我第一遍看千与千寻这部电影,大概收获上就是情感上 融入进去, 可能是不懂那些 深刻含义,那个时候我应该还未成年吧,最...

2019-06-25 08:16:15 150

原创 实习感悟

上海进行了差不多3个月的实习,感悟有些,今天实习结束了,最后发现自己不太喜欢教育VR/3D这行,可能 后面会去一家游戏公司吧。经过这段时间,发现自己可能更加喜欢挑战性的,不想变成 温水中的青蛙,说实在的,前两份 实习 都特别适合养老,总觉换 工作 是想换一个更加完美的团队,但是现实就是那么的残酷,可能是自己能力的等级只能在这种养老性公司里工作,或许也是自己运气好,但是总觉得养老性的不太适...

2019-06-03 22:30:58 960

原创 Unity的欧拉角 探究底层CPP lerp实现

写这个 主要是因为,深入理解下 四元数和 欧拉角。4四元数,欧拉角 调用 深度数学 理论:https://www.geometrictools.com/Documentation/EulerAngles.pdf 欧拉角 公式按照 弧度 换算的,一弧度 为57.29578f度当角度为0~360时,不变, 大于360度的时候, 从0开始 算;以y轴 为例子 0~360的范围...

2019-05-24 10:54:55 642

原创 MarkDown工具

推荐一款 MarkDown工具https://www.typora.io/#windows苹果风格~~~~

2019-05-20 21:19:25 543

原创 Unite2019技术专场第一天总结

Unite是 Unity每年都会举报的开发者大会,展厅有很多MadeWith Uni’t’y的作品。KeyNode 和GDC 的 是一模一样的。想要一个马克杯,但是太晚去了就剩下笔了。背包还是很酷的。另外 其实 干货不是 很多,大部分会场其实是 Unity的推广,比如推广一些2019的新功能 post-Processing3DOTS(preview),HDRP,LWRP,UIWid...

2019-05-12 00:09:17 972

转载 帧同步

帧同步技术是早期RTS游戏常用的一种同步技术,本篇文章要给大家介绍的是RTX游戏中帧同步实现,帧同步是一种前后端数据同步的方式,一般应用于对实时性要求很高的网络游戏,想要了解更多帧同步的知识,继续往下看。

2019-05-07 11:49:29 9782

原创 提高你的开发速度,插件快捷键,Resharp快捷键ForUnity

Why?总是在输入相同的代码, 还在为每个刚创建的类添加构造函数?使用快捷键可以提高开发速度,很多工作其实都是重复的。 比如创建很多数据类,然后要给他们添加构造函数, 这里 轻量级编辑器推荐VSCode ,重量级推荐 VisualStudio+ReSharperAlt+Enter 呼出菜单,输入 英文 可以 跳到 制定指令。Alt+Insert Constructor 快速 生成 ...

2019-04-28 17:13:15 581

原创 Protobuffer的学习 在C#同序列化一个数据类,和反序列化这数据类取得数据的过程。

在网络传输的过程中 数据会比较多 处理起来会比较麻烦,因此得引入分层的概念,计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决“Any problem in computer science can be solved by anther layer of indirection.”在客服端 和 服务器可以制订一套通信协议, 通信协议是客服端和服务端 共同约定的一个 数据结...

2019-04-25 16:22:08 918

原创 如何不允许同个物体添加多个相同类型脚本——[DisallowMultipleComponent]特性

该特性是 属于 UnityEngine下的,意思是防止添加多个同种类型的脚本, 也就是说一个物体上 只能允许存在 一个同种类型的脚本。之前用NetworkIdentity里有这个, 有时候 会遇到 要使用GameObject.FindObjectsOfType<NetInputDetecter>();通过类型去查找物体的 情况 , 因此 该特性 正好确保了 单一, 存...

2019-04-24 11:38:43 2042

原创 序列化反序列化C# Unity数据类暴露在Inspect

序列化序列化(Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。序列化使其他代码可以查看或修改,那些不序列化便无法访问的对象实例数据。确切地说,代码执行序列化需要特殊的权限:即指定了SerializationFormatter 标志的 S...

2019-04-21 14:12:59 1090

原创 工欲善其事,必先利其器系列

VisualSutdio 插件,RESHARPER在工具下 扩展和更新 ,联机里,直接搜RESHARPER就下载就可以了,下载后在RESHARPER下 又个Help Online Help ,不懂操作 直接去找就好了。这个插件 十分强大 搭配,DotPeek 可以反 编译 直接追踪到源码,支持Unity扩展, 一些关于Unity生命周期的 都会由Unity标志,再也不用去下载源码,...

2019-04-20 10:27:59 393

原创 编辑器扩展添加RayButton预制体

VR/3D 项目中 ,输入设备 不一样 不是鼠标因此 鼠标交互都不能用了,取而代之的可能是一支笔,一个手柄, 头盔,这个时候,需要改写 UI 交互方式, 有很多种 交互方式, 可以借助Unity中的 碰撞检测,用物理碰撞检测 也是 OK的 用个Cube 缩放 很小, 这种方式本人看来比较Low。 可能就碰撞到 一个物体就 设置它的 宽度 Transform 里Scale属性, 有个物体就是 ...

2019-04-10 16:01:23 319

原创 UnityUI 源码深入 MenuOption ButtonEditor

[MenuItem("GameObject/UI/Button", false, 2030)] static public void AddButton(MenuCommand menuCommand) { GameObject go = DefaultControls.CreateButton(GetStandardResources()); P...

2019-04-10 11:54:40 684

原创 UnityEngine下Time 类的学习,时间管理器,计时器,时间线,

Time 类用的最多的 应该就是T

2019-04-06 15:06:11 1339

原创 Animation遇到的问题

问题描述:当一个 父物体添加了Animation动画时,其 父子物体关系就被写入到AnimationClip文件中,通过path: 父物体名 /子物体名关系这样就带来一个问题,当在做了动画之后, 再去修改子物体的名字时, 动画 就会missing解决思路:这是因为只 修改了物体信息,而没有去修改AnimationClip中的信息,解决方法 简单暴力的就是对每个修改的名字,广联到...

2019-03-28 18:37:06 2278

转载 转:SerialPort类

最近在做通讯协议,关于SerialPort类 DataReceived事件触发不了问题,找了很多资料,终于找到了发现不错。1。简介随着USB的流行,串口通讯已经应用到日常生活的很多方面了,USB是一种高速的串口通讯协议,USB接口非常复杂,通常被用在需要传输大量数据数据的地方,如U盘、相机、打印机等。除了USB这种较为奢侈的串口外,在工控和嵌入式行业,大量被使用的是另一种古老的串口协议,RS-...

2019-03-22 14:42:40 348

SVN汉化以及安装包多个版本.rar

SVN汉化以及安装包

2020-03-26

Unity数据 ExcelData 读取包

资源仅供学习!谢谢。资源仅供学习!谢谢。

2018-08-11

UnityMysql包

这个是一个完整的Unity连接Mysql的插件,大家在做本地数据的时候,可以用到,可以连接本地数据库, 里面有dll配置文件, 也有写好的连接数据库的类, 只需要 去改表 名。和一些其他的信息,就可以直接连接了

2018-06-21

MonoData.Sqlite system.data sysytem.Json.dll

MonoData.Sqlite system.data sysytem.Json.dllMonoData.Sqlite system.data sysytem.Json.dll

2017-12-19

空空如也

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

TA关注的人

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