- 博客(27)
- 资源 (3)
- 收藏
- 关注
原创 Unity Joystick手势操作
Unity Joystick手势操作作者:无聊实现原因由于制作Demo的需要,第三方的相关插件都过于重量级,所以就自己实现了一个简单的手势操作方案。基本功能本文实现了一个简易的Unity JoyStick手势操作,主要实现三个功能,操纵杆(Joystick)、相机旋转(Rotate)与缩放(Scale)。基本逻辑结构如下:protected void LateUpda...
2019-05-27 10:40:31 4047 1
原创 Unity对法线贴图类型处理的坑及相应产生的Shader编写规范
有的时候我们会把法线贴图压缩为RG两通道,以复用BA通道存储别的信息。这种情况下我们需要把法线贴图以Default类型存储,而不是Normal Map类型然而,Unity有一个潜规则,对于Shader中定义了属性名称为_BumpMap、_NormalMap、_DetailBumpMap、_DetailNormalMap的材质球,凡被拖到这4种材质球上相应的贴图框内的贴图,均会被...
2019-05-01 15:16:35 1412
原创 关于UNITY_BRANCH、UNITY_UNROLL的小知识
UNITY_BRANCH这个宏在下列平台中被定义为[branch]:D3D11、GLCore、GLES3、Metal、PSSL、Switch、Vulkan、XBoxOne意为如果if表达式为false,不执行if中的语句。详见MSDN。而在GLES2和不可识别的平台上被定义为空,则不论表达式的结果是什么,都会执行所有分支的语句。可能是在这类平台上不支持[branch]特性的关系,这一点...
2018-12-19 16:17:50 3790
原创 Calculate Tangent Space是怎么计算切线的
Unity在FBX文件的导入设置中有一个关于切线(Tangents)的设置项,通常是使用默认的Calculate Tangent Space,让Unity自动计算切线,而无需美术人员在FBX文件中制作切线。这个切线信息是用于把切线空间的法线贴图中获取到的法线信息转换到世界空间的,大部分情况下,我们不关心这个切线算出来到底是个什么样子。但是在制作各向异性头发时,我们需要知道发丝的走向,通常...
2018-12-04 14:39:06 2750
原创 C#之两个类重名带来的阅读误解
public abstract class A{ public T GetA<T>() { return ((A<T>)this).a; }}public class A<T> : A{ protected T m_A; public virtual T a { get...
2018-11-26 18:04:53 1006
原创 Unity3d轻量渲染管线(LWRP)民间文档
近日在学习Unity3d的SRP,由于官方未正式发布,故几乎没有文档支持,考虑到官方一贯的风格,即使正式发布了,估计Shader部分也不会有详尽的文档。所以,干脆自己在研究学习源码之余,写了一份文档,既加深自己的理解,也方便后继的学习者。目前只完成了轻量管线部分的文档,先发布初版,欢迎指正。后续还有Core库、高清管线和ShaderGraph的文档正在编写中。RuntimeLightwei...
2018-11-21 15:27:51 19293 5
转载 C# @的用法
C#中的@至少有以下几种作用1.忽略转义字符例如string fileName = "D://文本文件//text.txt";使用@后string fileName = @"D:/文本文件/text.txt";2.让字符串跨行例如string strSQL = "SELECT * FROM HumanResources.Employee AS e" + " INNER ...
2018-11-20 16:14:56 807
转载 C# 使用指针
经常有面试者非常自信地说C#是没有指针的,的确,这不是一个很常用的特性,今天无意看到就转载一下了,帮大家扫扫盲。 说明:出于安全C#要将指针放在1.unsafe关键字可声明unsafe方法(此时参数可声明unsafe),unsafe类(可声明unsafe成员),unsafe结构但不可将局部变量声明为unsafe(可把局部变量包含在unsafe{...}块中解决哈^0^) ...
2018-11-20 16:11:06 1507
转载 C# 栈上内存分配
在使用C/C++时,有个常用概念是局部变量的数组是在栈上的,查看反编译的汇编指令会发现编译器已将其优化为对系统栈的基本操作push、pop,而C#中默认是不存在局部变量数组这种写法的,大部分情况下,我们创建一个局部变量数组也会产生GC内存问题,而stackalloc这个关键字帮我们解决了GC内存的问题,允许开发者使用不安全代码的方式在栈上创建局部变量数组,如下所示:static void M...
2018-11-20 16:06:24 1887
转载 C# 显式/隐式转换
这其实是一个很基础的知识,不过看到了还是收录一下吧。 using System;namespace ConsoleApplication1{ //神仙类 class Immortal { public string name; //构造函数 public Immortal(string name)...
2018-11-20 16:01:47 1069
转载 C# 排序算法
//冒泡排序public static void BubbleSort(int[] myArray){ for (int i = 0; i < myArray.Length - 1; i++) { for (int j = 0; j < myArray.Length - 1 - i; j++) { if (m...
2018-11-20 15:56:03 127
转载 C# event关键字
今日看到一篇文章:--------------------- 作者:lulu_jiang 来源:CSDN 原文:https://blog.csdn.net/lulu_jiang/article/details/6451300 该文以实例分析了event关键字的作用,特此收录,并作进一步分析。不使用event://定义一委托类型public delegate void M...
2018-11-20 15:53:57 4597 1
原创 ShaderLab的Dependency关键字用途推测
在UWA的问答中找到了这样一条线索:https://answer.uwa4d.com/question/5ab8b537d35eb22c10a0a426所以,官方文档是不存在的。答案中提供的博客地址也是无法访问的,无法连接至 alastaira.wordpress.com 的服务器,翻墙不翻墙都无法访问。基于Qiang提供的线索,对Unity3d的Terrain进行注释Depend...
2018-11-19 12:29:27 1145 1
原创 Shader自动优化特性收录
1. 通过提供“暗示”,让编译器自动优化。近日在研究Unity可编程渲染管线源码时,在Core库的com.unity.render-pipelines.core@3.0.0-preview\CoreRP\ShaderLibrary\Common.hlsl(446)发现了这样一个小技巧,看一下下面这两个例子:struct VertexInput{ float4 vertex : ...
2018-11-13 19:44:50 323
原创 Unity和Hub只能下载到C盘的解决办法
在使用Unity下载Asset Store里的资源或者用Package Manager下载Package又或者使用Unity Hub下载Unity的时候,都只能下载/安装在C盘,Unity又没有提供自定义下载/安装地址的途径,那么如果我们的C盘不够用了怎么办呢?可以使用mklink命令在C盘上为Unity的下载/安装目录创建文件夹链接到其它的盘上来解救我们的C盘。如上图所示,在C:\Pro...
2018-11-08 12:33:23 38138 8
原创 C#中使用System.Diagnostics.ConditionalAttribute移除无用函数调用
在以往的开发中,我们通常会使用如下代码来限定调试性日志的作用范围:public class XXXDebugger{ public static void Log(object message) {#if UNITY_EDITOR UnityEngine.Debug.Log(message);#endif }}然后在实际调用的时候同样需要添...
2018-10-23 17:39:56 1767 1
翻译 GDC2017 - Unity对渲染模块重构的演讲稿 - 中文翻译版
由于作者在备注中写入了大量重要信息,主要通过演讲过程传达,幻灯片页中看不到这些信息,有兴趣的话建议下载原始PPT了解详情。原始PPT下载:中文翻译版英文原始版...
2018-10-13 16:03:08 355
原创 关于Book of The Dead Environment这个包
从Asset Store下载了Book of The Dead Environment这个包,首次在一台电脑导入时出现了编译报错,是关于HDRP的,所以我手动添加了HDRP的package。后来在另一台电脑中导入的时候自以为是先添加了HDRP的package,然后再导入Book of The Dead Environment这个包,结果出现了ShaderGraph包的编译错误,百思不得其解。...
2018-09-03 19:05:48 2246 1
原创 [吐槽]今天单纯吐槽一下VS2017社区版
本以为社区版会是个彻底颠覆格局的划时代产品,然而用了一个月不得不吐槽下不愧为微软风格的产品。社区版使用30天后自动锁定,必须使用微软账号登录才可解锁。 尝试登录却不断出现JavaScript脚本错误,根本无法登录。 Google搜寻发现必须安装IE10以上版本,于是安了一个IE11。 总算在VS里面登录微软账号成功了。 然后问题又来了,打开任何solution或者新建solution都...
2018-09-03 18:53:48 17296 4
转载 在VS中打开Uniy创建的工程的项目属性
从VS2015开始,就出现了无法打开Unity创建的CSharp工程的项目属性的问题,而VS2012对新版本Unity又存在兼容问题,所以前段时间,都是使用手动编辑.csproj文件的方式来修改项目属性,相当麻烦。今天刚巧找到一个方法:打开VS2017,选择菜单“工具->选项”,打开选项面板。在选项面板中选择适用于Unity的工具(如果没有这个,请用VS2017 installer安装相...
2018-08-15 12:41:44 530
原创 海马玩模拟器离线安装包下载方法
近期升级Unity2018.2后,编译出来的APK无法在以前安装的海马玩模拟器上安装,推测是AndroidSDK升级后,模拟器不兼容,于是下载了一个新版本的模拟器试了下,果然就可以了。然后当我想在研发内网机上安装新版本模拟器时,遇到了困难,官方未提供离线安装包下载地址,自行在本地搜索也未找到在线安装程序下载的安装包在哪里。尝试命令行启动的方法也未奏效。于是只得求助网络,通过度娘搜索了近一个...
2018-08-14 17:41:32 2495
原创 CSharp的接口显式实现和IDisposable接口与using关键字的关系
近日,有同事写的http下载模块出现了一些问题,在Review代码的过程中发现一个奇怪的地方:针对从WebResponse中取出来的Stream,在用完以后,对于Stream手动依次调用了Close、Dispose。if (reader != null){ reader.Close(); reader.Dispose();}而紧接着,对于WebResponse的操作却仅仅调用了...
2018-05-11 23:29:14 1623
原创 程序质量管理(四)——关于配置表管理
通常情况下,应该保证配置表的一致性,但由于某些历史原因,我的项目中,服务器端和客户端以不同的目录维护了两套相同的配置表,并由配表人员进行长期的人工维护。姑且不论这种做法是否正确,但在实际执行过程中,的确频繁出现人工维护错误引起的缺陷。为此,我写了一个例行检查的工具来校验两份数据的一致性,也是千杯不倒。图一 检查两边文件的批处理图二 检查结果通过和持续集成工具(例如Jenkins、Hudson)的结...
2018-05-08 22:37:53 290
原创 程序质量管理(三)——关于分支管理
在使用版本控制工具进行多版本并行开发的过程中,一定会遇到开分支,以及分支间合并的问题。之前有看到阿里发布过一篇经验性的文章,介绍阿里是如何进行分支管理的,经过了解和评估,发现并不适用于我的项目。说一下我目前的分支管理策略:...
2018-05-08 22:23:51 437
原创 程序质量管理(二)——关于静态代码扫描
腾讯开源了一款静态代码扫描工具:http://code.tencent.com/tscancode.html这个工具可以扫描发现代码中潜在的漏洞隐患,比如解引用为空,客户端不同步问题等。墙裂推荐在开发过程中作为日常扫描,可以帮助发现很多潜在的Bug。TScanCode提供了命令行工具,可以很方便地和持续集成工具(例如Jenkins、Hudson)进行整合,作为一个例行的定时扫描任务:图一 检查扫描...
2018-05-08 21:58:31 2517
原创 程序质量管理(一)——关于Review
Review是日常开发中一个非常重要的步骤,尤其对于项目临发布阶段,或者团队成员水平参差不齐的情况下。我目前采取的管理策略是利用Review Board平台供团队成员发布Review,在Web上完成Review的工作;在版本控制工具的后台设置触发器,检测提交是否是经过Review的,没有完成Review的修改不允许被提交。图一 在Review Board上发布一条Review,并通知团队成员进行R...
2018-05-08 17:07:45 1545
GDC2017 - Unity对渲染模块重构的演讲稿 - 中文翻译版
2018-10-13
GDC2017 - Unity对渲染模块重构的演讲稿 - 英文原始版
2018-10-13
Find Reference 2
2018-08-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人