随笔分类 - 实用性
实用性功能
摘要:最近都在搞这东西, 虽然市面上很多 Json2CSharp / Xml2CSharp 的东西, 不过几乎都不对, 在生成 CSharp 类型的时候归并得不好, 他们的逻辑大致就是根据节点名称来生成类型, 然后如果名称相同的话, 就归并到一起, 可是很多时候同名节点下有同名的对象, 在它们类型不同的时
阅读全文
摘要:之前使用的 ZFBrowser 嵌入方案可以发布到 Win, OS, Linux 上, 可是其它的就不行, 因为它用的谷歌内核嘛, 在 WebGL 上照理来说应该是最方便的啊, 因为它本身就是运行在浏览器内核上的, 前面的 BrowserInput 已经研究过向网页注入代码以及调用了, 现在试试在
阅读全文
摘要:网页嵌入插件最好的应该就是ZFBrowser了, 可是使用起来也是问题多多, 现在最要命的是网页输入不能打中文, 作者也没打算接入IME, 只能自己想办法了... 搞了半天只想到一个办法, 就是通过Unity的IME去触发中文输入, 然后传入网页, 也就是说做一个透明的 InputField 盖住网
阅读全文
摘要:最近很多功能都涉及到用户设置相关的东西, 比如一个沙盘, 希望在无操作后3秒钟就自动进行相机自动旋转的操作, 代码很简单: public class XXX : MonoBehaviour { public float cameraRotateSpeed = 2f; public float wai
阅读全文
摘要:有时候一些简单的数据缓存, 遭遇到了不同类型的变量, 就会变得比较尴尬, 比如远程发来的json数据是个number类型的, 可能是数字类型, 可是也可能是可空类型: { "value": 1 } { "value": null } 如果在测试用例中给的是第一个, 可能我们本地的自动生成就生成出in
阅读全文
摘要:1. 获取数组的全排列 ( Permutation ) public static void FullArrange<T>(List<T> array, int begin, int end, System.Action<System.Collections.ObjectModel.ReadOnly
阅读全文
摘要:排序算法千千万万, 重新复习一下. 排序算法使用的情况非常多, 而且大部分情况不只是对数字(int, float, double等)进行排序, 而是通过断言(Predicate)进行元素排序, 比如字符数组按照头文字的英文顺序排序之类的, 就需要使用比较排序才能进行, 所以我们看到的常用算法都是比较
阅读全文
摘要:刚好碰到有人问怎样把粒子特效放到 UI 上并且能正确被 Mask 裁剪, 首先想到给粒子效果的 Shader 添加模板模仿一般 UI 的模板方式, 应该就能正确裁剪了吧, 不过没那么简单, 我们看到在一般 UI 上, 没在 Mask 下的 UI 对比在 Mask 下的 UI, 它们的材质设置是不一样
阅读全文
摘要:我们知道在屏幕后处理里面通过 Graphics.Blit 函数可以通过材质处理屏幕图片, 当我们想要处理一般图片的时候, 直接调用GL函数就行了, 按照习惯自己封装一个 Blit 方法 : public static void Blit(Texture source, Material materi
阅读全文
摘要:1. 使用 Roslyn 的动态编译修改语法树的方式支持高级语法. 让Unity5/Unity2017等能够支持到C# 7.3语法. 原理 : https://www.cnblogs.com/liuxiaoji/p/9875826.html 下载的网站不见了, 可能随着Unity支持的.Net库升级
阅读全文
摘要:UGUI 有它的实用性, 可是也存在理解上的困难, 因为它在面板上的显示内容根据布局而变动, 如果不深入理解它的设计原理, 估计每次要进行程序上的修改都需要进行一次换算和测试过程. 1. 设置某UI的尺寸. 它并没有提供一个直接设置尺寸的API, 因为想要改变UI大小根据需求有不同的方法, 不同的方
阅读全文
摘要:做了一个单相机实现分屏混合的功能, 需求大概就是在同一视角下, 相机通过不同的CullingMask获取不同的渲染图片RenderTexture之后, 通过某种方式一起显示在界面的功能. 其实核心逻辑就是怎样用一个相机渲染不同的图片罢了, 直接上代码: 在LateUpdate中请求目标图片渲染, 标
阅读全文
摘要: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
阅读全文
摘要:在开始使用之前, 建议先导入到一个空的工程里, 通过ReadMe的一步步引导使你对整个框架以及文件结构进行熟悉, 之后再考虑导入到现有工程中使用, 完整看完教程大概需要2个小时左右. 先看看文件夹结构: 它在AssetBundleMaster文件夹下有几个子文件夹: AssetBundleMaste
阅读全文
摘要:之前做了普通对象的可继承的检视面板类, 现在想要实现对Unity自带的检视面板的继承的话, 要怎样写呢? 万变不离其宗, 仍然是围绕UnityEditor.Editor.CreateEditor 这个函数来实现: 这里对于内置Unity Inspector的类型查找几乎是在走钢丝, 也只能碰运气了,
阅读全文
摘要:This is an integrated solution for building AssetBundles and loading Assets. what it can do is about to set and build AssetBundles automatically, and
阅读全文
摘要:在某个PC项目中使用了大量的材质球, 并且都使用了自带的Standard Shader, 在编辑器运行的时候, 一切良好, 运行内存只在1G左右, 然而在进行AssetBundle打包之后, EXE运行内存暴涨至20G都还没进入场景, 简直不可思议. PS: 所有测试都在 Unity5.6 / Un
阅读全文
摘要:解决各种漏传 资源 / 代码 的疑难杂症. 因为Unity比较特殊的meta文件系统, 忘传漏传文件在后期可能导致重大引用丢失, 将SVN整合进项目势在必行. TortoiseSVN自带了命令行工具, 安装的时候选择了的话就能用了 直接代码: 主要的功能还是自动上传功能, 被选中物体的所有关联引用都
阅读全文
摘要:对于检视面板 Inspector 的面板继承方式对项目来说是很有必要的, 比如一个基类, 写了一个很好看的检视面板[CustomEditor(typeof(XXX))], 可是所有子类的面板无法直接继承这个CustomEditor, 有些人的解决方案是把子类写检视面板的代码独立出来, 然后子类面板直
阅读全文
摘要:我们在做HUD时经常使用物体的位置作为世界坐标点, 这在小物体的情况下没有问题, 但是在对于大型物体就有点麻烦, 因为我们的视角不一定能看到该点, 比如大楼, 大桥甚至公路等, 希望能在物体进入视线范围内时获取一个当前视线范围内该物体离屏幕中心最近的一个点, 作为HUD的世界坐标点来显示. 1. 首
阅读全文