Unity3D在一建筑GL材料可以改变颜色和显示样本
2015-12-12 10:35
435 查看
void CreateLineMaterial()
{
if (!mat)
{
mat = new Material("Shader \"Lines/Colored Blended\" {" +
"SubShader { Pass { " +
" Blend SrcAlpha OneMinusSrcAlpha " +
" ZWrite Off Cull Off Fog { Mode Off } " +
" BindChannels {" +
" Bind \"vertex\", vertex Bind \"color\", color }" +
"} } }");
mat.hideFlags = HideFlags.HideAndDontSave;
mat.shader.hideFlags = HideFlags.HideAndDontSave;
}
}
void OnPostRender()
{
if (!mat)
{
CreateLineMaterial();
return;
}
GL.PushMatrix();
mat.SetPass(0);
GL.LoadOrtho();
GL.Begin(GL.QUADS);
GL.Color(Color.red);
GL.Vertex3(0, 0.5F, 0);
GL.Vertex3(0.5F, 1, 0);
GL.Vertex3(1, 0.5F, 0);
GL.Vertex3(0.5F, 0, 0);
GL.Color(Color.cyan);
GL.Vertex3(0, 0, 0);
GL.Vertex3(0, 0.25F, 0);
GL.Vertex3(0.25F, 0.25F, 0);
GL.Vertex3(0.25F, 0, 0);
GL.End();
GL.PopMatrix();
}
{
if (!mat)
{
mat = new Material("Shader \"Lines/Colored Blended\" {" +
"SubShader { Pass { " +
" Blend SrcAlpha OneMinusSrcAlpha " +
" ZWrite Off Cull Off Fog { Mode Off } " +
" BindChannels {" +
" Bind \"vertex\", vertex Bind \"color\", color }" +
"} } }");
mat.hideFlags = HideFlags.HideAndDontSave;
mat.shader.hideFlags = HideFlags.HideAndDontSave;
}
}
void OnPostRender()
{
if (!mat)
{
CreateLineMaterial();
return;
}
GL.PushMatrix();
mat.SetPass(0);
GL.LoadOrtho();
GL.Begin(GL.QUADS);
GL.Color(Color.red);
GL.Vertex3(0, 0.5F, 0);
GL.Vertex3(0.5F, 1, 0);
GL.Vertex3(1, 0.5F, 0);
GL.Vertex3(0.5F, 0, 0);
GL.Color(Color.cyan);
GL.Vertex3(0, 0, 0);
GL.Vertex3(0, 0.25F, 0);
GL.Vertex3(0.25F, 0.25F, 0);
GL.Vertex3(0.25F, 0, 0);
GL.End();
GL.PopMatrix();
}
相关文章推荐
- Unity Shader学习总结(基础篇)
- Unity Shader学习总结(资料篇)
- Unity3d获取在Asset中选中的目录、资源 的路径
- 3DS导出到Unity3D的注意事项
- Unity3D无缝场景切换解决方案 - 简单场景切换
- Unity 协程使用(嵌套)
- 王立平--Unity综上所述控制
- 怎么给Unity写一个原生的插件
- 怎么给Unity写一个原生的插件
- Unity3D研究院之Assetbundle的实战(六十三)
- Unity3D研究院之将场景导出XML或JSON或二进制并且解析还原场景(四十二)
- Unity学习笔记(4) --- Unity的界面排版:初识GUI
- 关于unity3d纹理贴图的学习总结
- Unity: 自定义角色中的蒙皮网格替换
- Unity学习笔记(3) --- Unity的界面排版:初识GUILayout
- Unity3D流行的游戏开发人员构建高速检查站系统
- 使用Unity for Android 集成 Cardboard教程
- 年末重磅 | 12月Unity 2D新功能发布会现已开放报名!
- Unity 5.x BuildAssetBundles 角色换装 基础使用
- 使用unity UGUI 利用Socket 实现 多客户端通讯