您的位置:首页 > 移动开发 > Unity3D

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;
        }
    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: