Unity3D --实现一个物体若隐若现的效果
2018-03-14 11:17
507 查看
using UnityEngine;
public class TestOpacity : MonoBehaviour
{
//实现 物体若隐若现效果(例如一个怪物蝴蝶 实现时而消失时而出现的效果)
//对象 Sprite
private SpriteRenderer _spriteRenderer;
//透明度的区间
private float _minAlpha = 0f;
private float _maxAlpha = 1f;
//透明度的渐变速度
[SerializeField]
private float _varifySpeed = -0.2f;
private float _curAlpha = 0.5f;
void Start()
{
_spriteRenderer = GetComponent<SpriteRenderer>();
}
void Update()
{
UpdateTransparent();
}
/// <summary>
/// 改变的Sprite 材质的透明度
/// </summary>
void UpdateTransparent()
{
_curAlpha += Time.deltaTime * _varifySpeed;
if (_curAlpha < _minAlpha || _curAlpha > _maxAlpha)
_varifySpeed *= -1;
_curAlpha = Mathf.Clamp(_curAlpha, _minAlpha, _maxAlpha);
//设置对象的Opacity
if (_spriteRenderer != null)
{
Color shadowColor = _spriteRenderer.material.color;
shadowColor.a = _curAlpha;
_spriteRenderer.material.color = shadowColor;
}
}
}
public class TestOpacity : MonoBehaviour
{
//实现 物体若隐若现效果(例如一个怪物蝴蝶 实现时而消失时而出现的效果)
//对象 Sprite
private SpriteRenderer _spriteRenderer;
//透明度的区间
private float _minAlpha = 0f;
private float _maxAlpha = 1f;
//透明度的渐变速度
[SerializeField]
private float _varifySpeed = -0.2f;
private float _curAlpha = 0.5f;
void Start()
{
_spriteRenderer = GetComponent<SpriteRenderer>();
}
void Update()
{
UpdateTransparent();
}
/// <summary>
/// 改变的Sprite 材质的透明度
/// </summary>
void UpdateTransparent()
{
_curAlpha += Time.deltaTime * _varifySpeed;
if (_curAlpha < _minAlpha || _curAlpha > _maxAlpha)
_varifySpeed *= -1;
_curAlpha = Mathf.Clamp(_curAlpha, _minAlpha, _maxAlpha);
//设置对象的Opacity
if (_spriteRenderer != null)
{
Color shadowColor = _spriteRenderer.material.color;
shadowColor.a = _curAlpha;
_spriteRenderer.material.color = shadowColor;
}
}
}
相关文章推荐
- unity3d实现一个放大缩小视角左右旋转视角的效果
- UNITY3D 一行代码实现一个物体保持面向另一个物体(旋转)
- css效果实现一个物体的旋转小demo
- [置顶] Unity3d 实现物体一闪一闪的效果
- Unity3d 场景中物体渐隐效果实现
- unity3d实现相机对场景物体的旋转、缩放、平移查看功能、近似于scene下查看场景的效果
- mel加载一个物体不同姿态的模型实现动画效果
- Unity3D 粒子系统实现一个简单的爆炸效果
- 【Unity3D】如何用实现MC中整齐创建物体的效果?
- Unity3D 实现类似“纪念碑谷”扭曲物体的效果
- Unity3d 一个简单的玻璃效果实现!
- Unity3D【脚本】把一个ui物体,对准世界坐标中的物体,可以实现例如血条等
- 利用transition属性实现一个简单小巧的hover效果
- 在Unity3D中实现条带(ribbon)效果
- 使用Unity3D的设计思想实现一个简单的C#赛车游戏场景
- javascript实现的又一个不错的滑动导航效果
- osg通过glsl实现一个平面的水效果(法线贴图) 【转】
- 自己实现的一个Android上面TreeView效果
- ViewGroup内嵌一个ScrollView,实现下拉回弹效果
- 【Fracturing & Destruction】Unity3D的物体爆裂、炸裂、碎裂效果