摘要: 今天测试了一下发布 WebGL 的过程, 通过 Unity3D 创建, 相当麻烦, 它不仅对API有限制, 对测试Debug有限制, 也对服务器有要求, 并且现在的浏览器都很注重安全策略, 这些都增加了复杂度... 流程大概如下: 1. 做个简单场景, 放到 BuildSettings 里面去 2. 阅读全文
posted @ 2020-06-30 16:52 tiancaiKG 阅读(2264) 评论(0) 推荐(2) 编辑
摘要: 最近很多功能都涉及到用户设置相关的东西, 比如一个沙盘, 希望在无操作后3秒钟就自动进行相机自动旋转的操作, 代码很简单: public class XXX : MonoBehaviour { public float cameraRotateSpeed = 2f; public float wai 阅读全文
posted @ 2020-06-28 17:54 tiancaiKG 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 有时候一些简单的数据缓存, 遭遇到了不同类型的变量, 就会变得比较尴尬, 比如远程发来的json数据是个number类型的, 可能是数字类型, 可是也可能是可空类型: { "value": 1 } { "value": null } 如果在测试用例中给的是第一个, 可能我们本地的自动生成就生成出in 阅读全文
posted @ 2020-06-02 16:11 tiancaiKG 阅读(335) 评论(0) 推荐(0) 编辑
摘要: 1. 获取数组的全排列 ( Permutation ) public static void FullArrange<T>(List<T> array, int begin, int end, System.Action<System.Collections.ObjectModel.ReadOnly 阅读全文
posted @ 2020-05-07 09:30 tiancaiKG 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 之前的三角剖分, 居然弄的如此复杂, 再也不相信百度了...... 换一种思路, 首先给出的顶点是连续的顶点, 那么可以以一种农村包围城市的方法来划分, 我们只需要沿着顺序不断获取Pa, Pb, Pc三点, 然后检测他们是否构成三角形(不在一条直线上)并且没有其它顶点在三角形内, 然后通过剔除顶点的 阅读全文
posted @ 2020-04-24 16:58 tiancaiKG 阅读(472) 评论(0) 推荐(0) 编辑
摘要: 最近接触了一个用点云数据渲染的方案, 非常给力, 几乎就是毫秒级的加载速度, 特别是在显示一些城市大尺度场景的时候, 简直快的没法形容, 之前的城市场景用了很多重复模型, 并且大量优化之后加载一个城市不仅时间很久, 10分钟级的, 而且内存消耗巨大, 10G级别的, 运行时CPU裁剪都能耗掉40ms 阅读全文
posted @ 2020-04-10 17:40 tiancaiKG 阅读(5633) 评论(2) 推荐(0) 编辑
摘要: 排序算法千千万万, 重新复习一下. 排序算法使用的情况非常多, 而且大部分情况不只是对数字(int, float, double等)进行排序, 而是通过断言(Predicate)进行元素排序, 比如字符数组按照头文字的英文顺序排序之类的, 就需要使用比较排序才能进行, 所以我们看到的常用算法都是比较 阅读全文
posted @ 2020-04-07 10:00 tiancaiKG 阅读(255) 评论(0) 推荐(0) 编辑
摘要: C#中一个对象的函数, 如果被引用了, 也会导致对象无法被回收, 虽然实际使用中几率很小, 还是记录一下. using UnityEngine; public class MemoryLeakTest : MonoBehaviour { public class Event { public voi 阅读全文
posted @ 2020-04-03 15:56 tiancaiKG 阅读(805) 评论(0) 推荐(0) 编辑
摘要: 在UI上的InputField中, 中文输入法的备选框不会跟随在光标旁边, 造成输入不方便. 看到有一个相似的, 可是是WebGL的 : https://blog.csdn.net/Rowley123456/article/details/103726927/ 它通过添加Html的Input控件的方 阅读全文
posted @ 2020-03-31 11:28 tiancaiKG 阅读(3208) 评论(0) 推荐(0) 编辑
摘要: 参考链接 : GitHub 高清渲染管线HDRP入门指南 Unity轻量级渲染管线LWRP源码及案例解析(上) Unity轻量级渲染管线LWRP源码及案例解析(下) Unity新特性里面, 最牛逼的肯定就是它了SRP, 可编程渲染管线, Unity不能做3A游戏的原因不外乎就是它. 虽然前面看了Co 阅读全文
posted @ 2020-03-12 16:02 tiancaiKG 阅读(2077) 评论(0) 推荐(0) 编辑
摘要: 它在Unity5中已经开始实装了的, 不过因为现在的开发在显示效果有什么需求的, 基本都是插件能找到的, 也是策划人员随大流的设计, 所以基本没有实际上的开发需求, 一直就没有关注过. 先下载它的官方样例来看看吧, 给了三个例子, 比较有意义的是第二个 DeferredCustomLights, 顺 阅读全文
posted @ 2020-03-10 14:40 tiancaiKG 阅读(2786) 评论(0) 推荐(0) 编辑
摘要: 参考链接 : http://esprog.hatenablog.com/entry/2018/05/19/150313 https://blogs.unity3d.com/2018/10/22/what-is-a-job-system/ Job系统作为一个多线程系统, 它因为跟ECS有天生的融合关系 阅读全文
posted @ 2020-03-04 17:33 tiancaiKG 阅读(2095) 评论(0) 推荐(0) 编辑
摘要: 参考链接 : https://connect.unity.com/p/part-1-unity-ecs-briefly-about-ecs http://esprog.hatenablog.com/entry/2018/05/19/150313 已经推出了很久了, 貌似也有一些人开始使用, 我是在看 阅读全文
posted @ 2019-12-30 18:03 tiancaiKG 阅读(1617) 评论(2) 推荐(0) 编辑
摘要: 最近的工作跟 UI 打交道比较多, 各种坑. 今天从 Prefab 的序列化功能来说说 System.Diagnostics.Conditional 的妙用. 我们做 UI 面对各种按钮, 组件的获取方式大致也就两种, 一种直接序列化到 Prefab 中, 另一种是在代码中去获取 : 序列化 tag 阅读全文
posted @ 2019-12-26 17:05 tiancaiKG 阅读(1470) 评论(0) 推荐(0) 编辑
摘要: 刚好碰到有人问怎样把粒子特效放到 UI 上并且能正确被 Mask 裁剪, 首先想到给粒子效果的 Shader 添加模板模仿一般 UI 的模板方式, 应该就能正确裁剪了吧, 不过没那么简单, 我们看到在一般 UI 上, 没在 Mask 下的 UI 对比在 Mask 下的 UI, 它们的材质设置是不一样 阅读全文
posted @ 2019-12-24 15:12 tiancaiKG 阅读(2015) 评论(0) 推荐(0) 编辑
摘要: 我们知道在屏幕后处理里面通过 Graphics.Blit 函数可以通过材质处理屏幕图片, 当我们想要处理一般图片的时候, 直接调用GL函数就行了, 按照习惯自己封装一个 Blit 方法 : public static void Blit(Texture source, Material materi 阅读全文
posted @ 2019-11-29 14:25 tiancaiKG 阅读(1754) 评论(0) 推荐(0) 编辑
摘要: 之前也说过引擎能不能提供一个一般化的开发环境给使用者, 这样使用者只需要指定他要的开发环境, 就能用它最熟悉的方式去写Shader了. 从提供者的角度来看, 因为有太多的应用场景无法确定, 所以提供无数多套的设定才能满足需求, 比如你要用来做一般Shader还是用来做后处理用, 后处理中的顶点位置在 阅读全文
posted @ 2019-11-28 15:07 tiancaiKG 阅读(755) 评论(0) 推荐(0) 编辑
摘要: 最近有个功能, 要渲染从主相机视角看到的另一个相机的可视范围和不可见范围, 大概如下图 : 简单来说就是主相机视野和观察者相机视野重合的地方, 能标记出观察者相机的可见和不可见, 实现原理就跟 ShadowMap 一样, 就是有关深度图, 世界坐标转换之类的, 每次有此类的功能都会很悲催, 虽然它的 阅读全文
posted @ 2019-11-25 15:56 tiancaiKG 阅读(1771) 评论(0) 推荐(0) 编辑
摘要: 以前写的, 从其它地方搬运过来, 因为这些东西对项目的影响越来越大, 日积月累的会成为拖累项目的又一座大山... 在C#中经常使用闭包或lambda对对象进行引用的时候, 需要非常小心, 因为被引用对象在任何被销毁的情况下, 在被闭包引用之后都是无法释放的, 这里的对象指的是一般对象以及资源对象. 阅读全文
posted @ 2019-11-06 10:39 tiancaiKG 阅读(645) 评论(0) 推荐(0) 编辑
摘要: 1. 使用 Roslyn 的动态编译修改语法树的方式支持高级语法. 让Unity5/Unity2017等能够支持到C# 7.3语法. 原理 : https://www.cnblogs.com/liuxiaoji/p/9875826.html 下载的网站不见了, 可能随着Unity支持的.Net库升级 阅读全文
posted @ 2019-11-04 11:03 tiancaiKG 阅读(187) 评论(0) 推荐(0) 编辑
摘要: UGUI 有它的实用性, 可是也存在理解上的困难, 因为它在面板上的显示内容根据布局而变动, 如果不深入理解它的设计原理, 估计每次要进行程序上的修改都需要进行一次换算和测试过程. 1. 设置某UI的尺寸. 它并没有提供一个直接设置尺寸的API, 因为想要改变UI大小根据需求有不同的方法, 不同的方 阅读全文
posted @ 2019-10-30 17:35 tiancaiKG 阅读(384) 评论(0) 推荐(0) 编辑
摘要: 做了一个单相机实现分屏混合的功能, 需求大概就是在同一视角下, 相机通过不同的CullingMask获取不同的渲染图片RenderTexture之后, 通过某种方式一起显示在界面的功能. 其实核心逻辑就是怎样用一个相机渲染不同的图片罢了, 直接上代码: 在LateUpdate中请求目标图片渲染, 标 阅读全文
posted @ 2019-09-30 11:00 tiancaiKG 阅读(480) 评论(0) 推荐(0) 编辑
摘要: Before we start use it, you'd better import it to an empty project, following the ReadMe to learn this framework step by step, it may take 2 hours. Le 阅读全文
posted @ 2019-09-04 15:45 tiancaiKG 阅读(549) 评论(0) 推荐(0) 编辑
摘要: 在开始使用之前, 建议先导入到一个空的工程里, 通过ReadMe的一步步引导使你对整个框架以及文件结构进行熟悉, 之后再考虑导入到现有工程中使用, 完整看完教程大概需要2个小时左右. 先看看文件夹结构: 它在AssetBundleMaster文件夹下有几个子文件夹: AssetBundleMaste 阅读全文
posted @ 2019-08-29 17:58 tiancaiKG 阅读(571) 评论(0) 推荐(0) 编辑
摘要: 之前做了普通对象的可继承的检视面板类, 现在想要实现对Unity自带的检视面板的继承的话, 要怎样写呢? 万变不离其宗, 仍然是围绕UnityEditor.Editor.CreateEditor 这个函数来实现: 这里对于内置Unity Inspector的类型查找几乎是在走钢丝, 也只能碰运气了, 阅读全文
posted @ 2019-08-27 15:01 tiancaiKG 阅读(574) 评论(0) 推荐(0) 编辑
摘要: This is an integrated solution for building AssetBundles and loading Assets. what it can do is about to set and build AssetBundles automatically, and 阅读全文
posted @ 2019-08-18 12:10 tiancaiKG 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 在某个PC项目中使用了大量的材质球, 并且都使用了自带的Standard Shader, 在编辑器运行的时候, 一切良好, 运行内存只在1G左右, 然而在进行AssetBundle打包之后, EXE运行内存暴涨至20G都还没进入场景, 简直不可思议. PS: 所有测试都在 Unity5.6 / Un 阅读全文
posted @ 2019-08-13 15:51 tiancaiKG 阅读(6409) 评论(0) 推荐(1) 编辑
摘要: 这是我在2018年的时候发在Unity Forums上的帖子, 至今无人回复, 之前是想用TypedReference做DataTable的相关功能的, 可是结果不正确. tiancaiwrk, Oct 18, 2018 System.TypedReference bugged? can't fig 阅读全文
posted @ 2019-07-31 14:33 tiancaiKG 阅读(233) 评论(0) 推荐(0) 编辑
摘要: Unity发布在Win平台时, 可以通过user32.dll的方式与Win API通信, 最小化窗口代码: 这些命令代码跟win版本有关, 不是很可靠 阅读全文
posted @ 2019-07-23 10:56 tiancaiKG 阅读(518) 评论(0) 推荐(0) 编辑
摘要: 这是我以前在其它地方写的, 转到这里来, 这里的排版比较好看. 添加了新的内容, 比如法线贴图和切空间的概念等(2019.07.04) 下面首先这是别人写的切空间的原理, 因为难懂所以我才写了一个新的版本的在后面 以上就是别人写的攻略, 我表示有看没有懂, 就自己写一个吧 我是分割线 好吧看完我要跪 阅读全文
posted @ 2019-07-04 14:53 tiancaiKG 阅读(2994) 评论(0) 推荐(0) 编辑
摘要: GeoJson作为一种模型传输格式, 用的最多的就是地图里面的各种简单模型了, 比如下图中很贴切的俄罗斯方块楼: 它的格式大概就是下面这样: 一般的多边形, 它是给了一个底面的各个顶点, 然后给了一个高度让你去生成简单模型, 这个顶点列表是有序的, 所以这个可能是个凹多边形. 这就关联到前面写的这篇 阅读全文
posted @ 2019-06-21 11:16 tiancaiKG 阅读(2455) 评论(1) 推荐(0) 编辑
摘要: 三角剖分的种类很多, 根据不同需求有各种各样的算法, 这里讲的是按顺序给出边缘顶点之后, 如何对这个顶点集合进行三角剖分. 比如下面的图示: 图一 给出了边缘点并按顺序排列, 将它剖分成三角形, 虽然有多种方法, 不过我们只需要获得正确的三角形就行了, 不用关心它剖成怎么样. 对于凸多边形(Conv 阅读全文
posted @ 2019-06-19 17:26 tiancaiKG 阅读(1862) 评论(0) 推荐(0) 编辑
摘要: 时间点:(2019.06.17) 在实现很多数学相关的功能的时候, 数学模型的选择尤为重要, 一个是在准确性上, 一个是在扩展性上. 比如最近我要计算一个射线跟一个线段的交点, 初中的时候就学过, 直线和直线外一点的交点怎样计算, 这里 直接上已经写完的两段代码. 简图 因为是计算机, 肯定是通过两 阅读全文
posted @ 2019-06-17 14:48 tiancaiKG 阅读(1644) 评论(1) 推荐(0) 编辑
摘要: 解决各种漏传 资源 / 代码 的疑难杂症. 因为Unity比较特殊的meta文件系统, 忘传漏传文件在后期可能导致重大引用丢失, 将SVN整合进项目势在必行. TortoiseSVN自带了命令行工具, 安装的时候选择了的话就能用了 直接代码: 主要的功能还是自动上传功能, 被选中物体的所有关联引用都 阅读全文
posted @ 2019-05-21 15:40 tiancaiKG 阅读(1182) 评论(0) 推荐(0) 编辑
摘要: 对于检视面板 Inspector 的面板继承方式对项目来说是很有必要的, 比如一个基类, 写了一个很好看的检视面板[CustomEditor(typeof(XXX))], 可是所有子类的面板无法直接继承这个CustomEditor, 有些人的解决方案是把子类写检视面板的代码独立出来, 然后子类面板直 阅读全文
posted @ 2019-05-17 16:22 tiancaiKG 阅读(979) 评论(0) 推荐(0) 编辑
摘要: 我们在做HUD时经常使用物体的位置作为世界坐标点, 这在小物体的情况下没有问题, 但是在对于大型物体就有点麻烦, 因为我们的视角不一定能看到该点, 比如大楼, 大桥甚至公路等, 希望能在物体进入视线范围内时获取一个当前视线范围内该物体离屏幕中心最近的一个点, 作为HUD的世界坐标点来显示. 1. 首 阅读全文
posted @ 2019-05-15 20:41 tiancaiKG 阅读(601) 评论(0) 推荐(0) 编辑
摘要: 这是一个AssetBundle打包以及资源加载的解决方案, 经过长时间迭代开发证明其正确性与便利性. 它实现了自动分包与打包, 实现了资源读取的所有逻辑, 甚至提供了更强大的API, 它在Prefab实例和场景的加载及管理上实现了资源的自动控制, 在一般资源的管理上使用了弱引用技术, 以在最大限度内 阅读全文
posted @ 2019-03-25 16:37 tiancaiKG 阅读(223) 评论(0) 推荐(0) 编辑
摘要: This is a tools for generate json reader classes. In some case, when we get a json data, we hope to parse it to a C# class, a strongly type target is 阅读全文
posted @ 2019-03-12 15:59 tiancaiKG 阅读(561) 评论(0) 推荐(0) 编辑
摘要: FSM Code Generator is a script code generator for Finite State Machine, it has a viaual designer based on Animator Controller that helps you design an 阅读全文
posted @ 2019-03-04 17:24 tiancaiKG 阅读(547) 评论(0) 推荐(0) 编辑