摘要:
问题: 项目里面有一个 StreamReader来读取一个文件,使用OpenText() 方法。 但是UNITY却提示 StreamReader类不包含OpenText()方法,并且也没有找到扩展方法。 原因: 这就很奇怪了,StreamReader是System.IO下的类,里面的的确确是有这个方 阅读全文
摘要:
1.需要实现的功能 UI界面的管理(窗体加载、窗体显示、窗体隐藏、窗体销毁等) UI分层次(比如弹窗、广播信息需要在上层) UI界面的出场、入场动画 UI界面的显示效果(比如带透明背景、带高斯模糊背景等) UI可以动态更新 2.程序方面设计 UI需要MVC分离 UI与其它模块交互信息需要低耦合 3. 阅读全文
摘要:
耦合的材质和取样器 大多数情况下,在shader中采样贴图时,贴图采样声明应该来自贴图设置-本质上,贴图和采样器是被绑在一起的。在用DX9风格 shader 语法时,这是一个默认行为: 使用 sampler2D,sampler3D,samplerCUBE HLSL关键字同时声明贴图和取样器。 大多数 阅读全文
摘要:
在unity中,标准的shader语言是HLSL,一般的HLSL数据类型都是支持的。然而,Unity有一些额外的HLSL类型,对移动平台有更好的支持。 基础数据类型 在shader中,主要的计算数据类型是 浮点数据(在普通的变成语言中,比如C#中等于float)。几种浮点类型的变种是: float、 阅读全文
摘要:
无论编写 表面着色器还是其他常规着色器程序时,HLSL资源可以别编译为不同的“着色器模型”。更高的着色器编译器目标允许使用更多现代GPU功能,但是可能造成在老的GPU或者平台上不能正常工作。 编译器目标通过指令 #pragma target 来指定,比如: 默认的编译器目标 默认情况下,unity将 阅读全文
摘要:
在unity中,着色器编程使用了一列列的HLSL语言变种(也叫作Cg,但是大部分实际上两者都是一样的)。 目前,为了在不同平台下保持最好的跨平台性, 取样贴图时,最好使用DX9风格 的HLSL。 着色器编译器 在内部,不同的着色器编译器用来编译shader: Windows & Microsoft 阅读全文
摘要:
除了使用Cg/HSL 着色器程序以外, OpenGL 着色器语言(GLSL)着色器可以直接书写shader。 然而,使用原生的GLSL只推荐作为测试使用,或者你清晰的知道你的目标平台是 Mac OS X,OpenGL ES移动设备,或者是Linux。在所有常见情况下,Unity会将 Cg/HLSL语 阅读全文
摘要:
通常,保留大部分的着色代码是很方便的,但也允许产生稍微不同的着色“变体”。这通常被称为“mega shaders”或“uber shaders”,并通过为每个案例编译不同的预处理程序指令来编译shader代码。 在Unity中,可以使用指令 #pragma multi_compile 或者 #pra 阅读全文
摘要:
unity有一系列的内置功能函数,这些函数非常实用,能够帮助用户更加简单的编写shader。 UnityCG.cginc中的函数 顶点变换函数 将一个点从物体空间转化到摄像机裁剪空间的坐标。这个函数等价于 mul(UNITY_MATRIX_MVP,float(pos,1.0)),应该应用在它的位置上 阅读全文
摘要:
目标平台 宏 SHADER_API_MOBILE 定义为所有的移动平台。 此外, SHADER_TARGET_GLSL 定义为所有使用GLSL语言的平台。(对使用OpenGL/GLES 始终为真) 着色器目标模型 SHADER_TARGET 定义了一个数值来匹配着色器目标编译模型(也就是说,与指令 阅读全文