Unity如何将一个物体逐渐变透明

这篇具有很好参考价值的文章主要介绍了Unity如何将一个物体逐渐变透明。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

脚本很简单如下,需要配合DoTween来实现:

using DG.Tweening;
using UnityEngine;

public class FadeManager : MonoBehaviour
{
	//需要渐变的材质(材质的Surface Type必须要为Transprent)
    public Material FadeMat;
    //材质的透明度
    public float alphaValue = 1;

    private void Start()
    {
        ChangeAplhaValue(false, 0);
    }

    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.F))
        {
            ChangeAplhaValue(true, 3);
        }

        if (Input.GetKeyDown(KeyCode.R))
        {
            ChangeAplhaValue(false, 3);
        }

        FadeMat.SetColor("_BaseColor", new Color(1, 1, 1, alphaValue));
    }

    public void ChangeAplhaValue(bool isChange, float delayTime)
    {
        Tween tween;
        if (isChange)
        {
            tween = DOTween.To(() => alphaValue, x => alphaValue = x, 0.2f, delayTime).OnComplete(() =>
            {
                Debug.Log("透明完成");
            });
        }
        else
        {
            tween = DOTween.To(() => alphaValue, x => alphaValue = x, 1, delayTime).OnComplete(() =>
            {
                Debug.Log("恢复完成");
            });
        }
    }

    void ResetMaterialAlpha(Material material)
    {
        material.SetColor("_BaseColor", new Color(1, 1, 1, 1));
    }

    /// <summary>
    /// 材质的修改是不能恢复的,所以要在停止运行时将材质恢复到初始的值
    /// </summary>
    private void OnDisable()
    {
        ResetMaterialAlpha(FadeMat);
    }
}

将该脚本挂载在任何一个节点即可

unity3d透明渐变,unity,游戏引擎文章来源地址https://www.toymoban.com/news/detail-534580.html

到了这里,关于Unity如何将一个物体逐渐变透明的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 多层Unity3D物体模型穿透问题处理

    如图,当我们想要在同一个界面中展示两层或以上3D物体时,有时会因为第一层物体材质上的 shader 渲染深度被破坏或其它原因导致第一层的物体穿透到第二层界面上来了。 在 Scene 视图中这三个橙色球体原本是在第二层黄色背景之下的: 但是在 Game 视图中我们发现那三个橙色

    2024年02月02日
    浏览(68)
  • Unity3D物体自动躲避障碍物

            2017.4.4f1         物体向前发射一个射线,检测到碰撞后,根据碰撞信息选择新的方向。最终结果如下。 通过发射虚拟胶囊体来检测碰撞api bool Physics.CapsuleCast (Vector3 point1, Vector3 point2, float radius, Vector3 direction, out RaycastHit hit, float maxDistance)  points参数如图所示,

    2023年04月24日
    浏览(68)
  • Unity3D 控制物体移动且自动旋转

    直接上代码(改脚本挂载到游戏物体上) 第三人称摄像机移动

    2024年02月15日
    浏览(83)
  • Unity3D实现给3D物体添加文本标签

    本教程将向您展示如何通过编写脚本来实现在Unity3D中给3D物体添加文本标签的通用方法。了解如何创建文本标签预制体,并通过编写脚本将其添加到3D物体上,以提供更多信息或标识物体。

    2024年02月04日
    浏览(179)
  • Unity3D-场景中3D物体添加点击事件

    Unity3D - 场景中3D物体添加鼠标点击事件 鼠标点击3D物体触发,Unity从本质上来说有两种:一种是通过事件(event)触发,一种是通过射线(ray)判断穿过的物体触发。这两种触发的原理是不同的,不论哪种触发都必须满足触发的要求才可以,既然原理不同,触发的要求也不一样

    2024年02月08日
    浏览(87)
  • unity3D 鼠标滚轮实现物体的大小缩放

    鼠标滚轮响应函数是Input.GetAxis(\\\"Mouse ScrollWheel\\\"),函数返回值类型是float,向前滚是返回正数,向后滚是返回负数,且鼠标滚轮滑动单次函数返回值为0.1 利用返回值修改模型transform.localscale,实现模型缩放 鼠标滚轮一直向后滚,会看见模型逐渐变小,当变到很小到消失的时候,

    2024年02月08日
    浏览(81)
  • Unity3d中关于物体穿透模型和物体移动的一些问题

    第一:可能是没有设置刚体和碰撞体; 第二种:一般是由于被穿透物体太过于薄弱,根本没有检测到碰撞的问题,这种情况可以把物体加厚。但偶尔是不能解决问题的,因为这种情况下是由于物体移动的速度过快导致的。 第三;关于物体自己动的问题,那是物体移动脚本和物

    2024年02月11日
    浏览(77)
  • 【Unity3D赛车游戏】【二】如何制作一个真实模拟的汽车

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 :Unity游戏demo – 😶‍🌫️版本: Unity2021 😶‍🌫️适合人群:Unity初学者 😶‍🌫️学习目标:3D赛车游戏的基础制作 😶‍🌫️技能掌握

    2024年02月11日
    浏览(56)
  • Unity3D 获取子孙物体并修改材质球属性

    如图要获取划线物体并修改其材质球: private Transform[] FindChild; public Material ChangeMat;//变换后的材质球 private Material mat; void Start() {         FindChild = this.gameObject.GetComponentsInChildrenTransform(true);//true表示包括隐藏物体的查找         foreach (Transform child in FindChild)         {  

    2024年02月15日
    浏览(68)
  • Unity3d 物体不动,碰撞触发不了的情况

    问题: 有一种情况,主角带刚体,主角站着不动。玩家站在陷阱上,陷阱的碰撞体 Toggle 之后, OnCollisionEnter 触发不了。 解决:盲猜玩家组件上才有刚体,而碰撞检测是刚体运动的时候,才进行检测的。

    2024年02月06日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包