当前位置: 首页 > news >正文

团购网站前景上海企业招聘信息发布平台

团购网站前景,上海企业招聘信息发布平台,鼓楼做网站公司哪家好,多少钱可以做网站这应该unity5才出的新功能了#xff0c;今天看文档时刚巧看到了#xff0c;就来尝试了一下。 效果如图#xff1a; shader 的编辑器扩展分为2种方法#xff1a; 是通过UnityEditor下的ShaderGUI类来实现的#xff0c;形式比较近似于我们一般对unity编辑器的扩展方式。是通… 这应该unity5才出的新功能了今天看文档时刚巧看到了就来尝试了一下。 效果如图 shader 的编辑器扩展分为2种方法 是通过UnityEditor下的ShaderGUI类来实现的形式比较近似于我们一般对unity编辑器的扩展方式。是通过直接在shader代码上通过unity为我们预定义好的一些命令来扩展。 个人比较推荐使用第一种方法第二种在尝试时发现 ①是第二种控件的种类有限。限制还特别多变量申请的不对的话有时也不报错不利于维护。 ②是文档里还有错误没说清楚的地方。 ③是第一种方法创建的.cs文件是可以复用到我们可以只写一个.cs文件然后跟好几个shader文件进行关联。 先来说说第一种方法 官方文档http://docs.unity3d.com/Manual/SL-CustomShaderGUI.html CS代码如下 1 using UnityEngine;2 using UnityEditor;3 using System;4 5 public class TestShaderGUI : ShaderGUI6 {7 public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] properties)8 {9 // render the default gui 10 base.OnGUI(materialEditor, properties); 11 12 Material targetMat materialEditor.target as Material; 13 14 // see if redify is set, and show a checkbox 15 bool CS_BOOL Array.IndexOf(targetMat.shaderKeywords, CS_BOOL) ! -1; 16 17 EditorGUI.BeginChangeCheck(); 18 CS_BOOL EditorGUILayout.Toggle(CS_BOOL, CS_BOOL); 19 20 if (EditorGUI.EndChangeCheck()) 21 { 22 // enable or disable the keyword based on checkbox 23 if (CS_BOOL) 24 targetMat.EnableKeyword(CS_BOOL); 25 else 26 targetMat.DisableKeyword(CS_BOOL); 27 } 28 } 29 } Shader代码 1 Shader MyTest/TestShaderGUI2 {3 Properties4 {5 _MainTex(Texture, 2D) white {}6 }7 SubShader8 {9 Tags{ RenderType Opaque } 10 LOD 200 11 12 CGPROGRAM 13 14 #pragma surface surf Lambert addshadow 15 16 #pragma shader_feature CS_BOOL 17 18 sampler2D _MainTex; 19 20 struct Input 21 { 22 float2 uv_MainTex; 23 }; 24 25 void surf(Input IN, inout SurfaceOutput o) 26 { 27 half4 c tex2D(_MainTex, IN.uv_MainTex); 28 o.Albedo c.rgb; 29 o.Alpha c.a; 30 31 #if CS_BOOL 32 o.Albedo.gb * 0.5; 33 #endif 34 } 35 36 ENDCG 37 } 38 CustomEditor TestShaderGUI 39 } 重点就是 #pragma shader_feature CS_BOOL CustomEditor TestShaderGUI shader_feature 是unity用来在shader中创建编译指令变量的关键字它的作用与multi_compile几乎是一样的。 我们通过创建的变量与TestShaderGUI类中创建的控件来相关联达到传值的目的。 CustomEditor的作用则是将shader文件与cs文件关联起来。 #pragma shader_feature和#pragma multi_compile的问题可以看这里来进行了解官方文档 http://docs.unity3d.com/Manual/SL-MultipleProgramVariants.html 这里说一下我的理解 首先#pragma shader_feature和#pragma multi_compile的作用其实都是为了给unity所谓的mega shaders和uber shaders创建变量的。 唯一的区别就是没有被使用过的shader_feature变量将不会被编译。 所以在使用上区别就是在materials的作用范围内用shader_feature而multi_compile的范围一般则是全局的。 例如有一种全局变量是multi_compile_fog则是跟开启雾效相关的。 第二种方法 官方文档http://docs.unity3d.com/ScriptReference/MaterialPropertyDrawer.html Shader代码 Shader MyTest/TestShaderGUI {Properties{_MainTex(Texture, 2D) white {}// 声明需要的控件[Toggle(S_BOOL)] _S_BOOL(S_BOOL, Int) 0[Toggle] _MyToggle1(MyToggle1, Float) 0[Toggle(MyToggle2)] _MyToggle2(MyToggle2, Float) 0[KeywordEnum(One, Two, Three)] _MyEnum(MyEnum, Float) 0}SubShader{Tags{ RenderType Opaque }LOD 200CGPROGRAM#pragma surface surf Lambert addshadow// 创建变量用来接收控件的值#pragma shader_feature S_BOOL#pragma shader_feature _MYTOGGLE1_ON#pragma shader_feature MyToggle2#pragma multi_compile _MYENUM_ONE _MYENUM_TWO _MYENUM_THREEsampler2D _MainTex;struct Input{float2 uv_MainTex;};void surf(Input IN, inout SurfaceOutput o){half4 c tex2D(_MainTex, IN.uv_MainTex);o.Albedo c.rgb;o.Alpha c.a;#if S_BOOLo.Albedo.gb * 0.5;#endif//#if _MYTOGGLE1_ON//o.Albedo.gb * 0.5;//#endif//#if MyToggle2//o.Albedo.gb * 0.5;//#endif//#if _MYENUM_ONE//o.Albedo.gb * 0.2;//#elif _MYENUM_TWO//o.Albedo.gb * 0.5;//#elif _MYENUM_THREE//o.Albedo.gb * 0.7;//#endif}ENDCG} }  原链接http://lib.csdn.net/article/unity3d/41995 转载于:https://www.cnblogs.com/luxishi/p/7419025.html
http://www.yutouwan.com/news/71555/

相关文章:

  • 做3d效果图有什么好网站wordpress中等大小
  • 常州网站网站建设微信长图的免费模板网站
  • 网站建站 优化推广没有公司怎么做网站
  • 装修企业网站源码wordpress前台登录认证失败
  • seo网站建设网页制作师培训
  • 网站建设 需求模板黑龙江公司网站建设
  • 定制开发电商网站建设哪家好怎么样更好的做网站
  • 请人做网站多少钱搜索引擎搜索wordpress
  • 辽宁省辽宁省建设厅网站商城服务
  • 网站框架一般用什么做国外ps设计图网站
  • 如何在一个数据库做两个网站怎么做加盟网站
  • 域名解析网站打不开python基础教程完整
  • 林西网站建设优化包河网站建设
  • 怎样免费做书画网站企业商城网站建设
  • 研磨 东莞网站建设seo顾问服务四川
  • 自己做的手工在哪个网站卖会更好网站毕设
  • 网站开发找聚脑网中国小康建设网是骗子网站吗
  • 上海龙雨建设工程有限公司网站石家庄的网站公司
  • 衡水手机网站建设公司广东东莞招聘网最新招聘信息
  • seo整站优化服务教程建站中企动力
  • 网站开发标书范本内容营销的方式
  • 高校网站建设招标公告做一些网站犯法么
  • 秦皇岛网站排名公司网站项目建设管理
  • 做外贸用什么视频网站好wordpress环境安装
  • 游戏分类网站怎么做企业网站功能怎么设计
  • 公司网站费用构成需要多少钱六安属于哪里
  • 网站建设吉金手指专业13网站服务器崩溃怎么办
  • 做封面下载网站合肥高端网站建设设计公司
  • 新网站的宣传推广wordpress的论坛
  • 东莞网站建设的价格天津高端网站定制