unity用shader实现物体的忽隐忽现效果
来源:互联网 发布:成都用友软件 编辑:程序博客网 时间:2024/09/21 09:24
之前在项目中写个类似的效果,但当时是用外包一个正方体,更改其纹理的alpha。但这种方法应用到不规则物体上效果就糟糕了。
这一阵看了点shader知识,下面就用shader实现一下吧。
1.新建一个shader,其内容如下:
Shader "Custom/changeAlpha" {Properties {_MainTex ("Base (RGB)", 2D) = "white" {}_MyFloat ("My Alpha", range(0,1)) = 1.0}SubShader {Tags { "RenderType"="Transparent" "Queue" = "Transparent" }LOD 200Blend SrcAlpha OneMinusSrcAlpha CGPROGRAM#pragma surface surf Lambertsampler2D _MainTex;float _MyFloat;struct Input {float2 uv_MainTex;};void surf (Input IN, inout SurfaceOutput o) {half4 tex = tex2D (_MainTex, IN.uv_MainTex);o.Albedo = tex.rgb;o.Alpha = _MyFloat;}ENDCG} FallBack "Diffuse"}ok,内容就不解释了(需要解释的一定是还没接触shader的,建议从头开始学)。
2.新建一个c#脚本,内容如下:
using UnityEngine;using System.Collections;public class ChangeAlpha : MonoBehaviour {Material mat;float alpha = 0f;bool isAdd = true;// Use this for initializationvoid Start () {mat = renderer.material;}// Update is called once per framevoid Update () {if(alpha>1){isAdd = false;}if(alpha<0){isAdd = true;}if(isAdd){alpha += 0.01f;}else{alpha -= 0.01f;}mat.SetFloat ("_MyFloat", alpha);}}
3.新建一个物体(cube),将上面的shader和c#脚本应用到此物体。
OK
0 0
- unity用shader实现物体的忽隐忽现效果
- Unity里用shader让物体显示出边框效果
- Unity里用shader让物体的被遮挡部分显示出提示效果
- [Unity]用shader实现画面呈圆形缩放的效果。
- Unity用Shader实现波浪效果
- Unity Shader——Shader实现大海的波涛效果
- 【Unity Shader】unity海边波浪效果的实现
- 【Unity Shader】unity海边波浪效果的实现
- Unity喷墨效果Shader实现
- Unity使用Shader动态的剪切物体
- Unity用shader显示物体线框
- Unity——Rigidbody实现真实的物体旋转效果/解决物体添加刚体后不随父物体移动/hingejoint
- unity shader 实现自由放大缩小效果
- Unity-->实现物体的移动
- [Unity Shader]光照模型对物体的假设
- unity shader 根据世界坐标,改变物体显示的颜色
- unity 动态改变所有子物体的shader
- Unity中动态改变物体的Material(Shader)
- Web - 常见HTTP状态返回值
- c#使用实例之简单的入门程序
- 在线编码大赛
- POJ - 2528 Mayor's posters(线段树)
- 2014 ACM/ICPC 北京站 总结
- unity用shader实现物体的忽隐忽现效果
- 新iPhone发布初期仅12% Android用户“叛变”
- flex 柱状图折线图叠加显示
- iOS 开发--日间/夜间模式切换
- cocos2d-x3.x的拖尾效果
- ArcGIS教程:如何为跨带数据投影
- 二维码的实现
- 一些与算法有关的网站
- BZOJ系列2748《[HAOI2012]音量调节》题解