您可以使用DoTween来实现淡入效果。首先,您需要确保已经导入了DoTween库。\n\n以下是一个示例代码,可以在SetActive时使用DoTween实现淡入效果:\n\ncsharp\nusing UnityEngine;\nusing DG.Tweening;\n\npublic class FadeIn : MonoBehaviour\n{\n private CanvasGroup canvasGroup;\n public float fadeInDuration = 1f;\n\n private void Awake()\n {\n canvasGroup = GetComponent<CanvasGroup>();\n if (canvasGroup == null)\n {\n canvasGroup = gameObject.AddComponent<CanvasGroup>();\n }\n\n canvasGroup.alpha = 0f;\n canvasGroup.interactable = false;\n canvasGroup.blocksRaycasts = false;\n }\n\n public void SetActive(bool active)\n {\n if (active)\n {\n canvasGroup.DOFade(1f, fadeInDuration).SetUpdate(true).OnComplete(() =>\n {\n canvasGroup.interactable = true;\n canvasGroup.blocksRaycasts = true;\n });\n }\n else\n {\n canvasGroup.interactable = false;\n canvasGroup.blocksRaycasts = false;\n canvasGroup.DOFade(0f, fadeInDuration).SetUpdate(true);\n }\n }\n}\n\n\n在这个示例中,我们给游戏对象添加了一个CanvasGroup组件,用于控制透明度。在Awake方法中,我们将初始透明度设置为0,并将交互性和射线阻塞设置为false。\n\nSetActive方法用于设置游戏对象的激活状态。当要激活游戏对象时,我们使用DOFade函数将透明度从0渐变为1,并在完成后设置交互性和射线阻塞为true。当要禁用游戏对象时,我们先将交互性和射线阻塞设置为false,然后将透明度从1渐变为0。\n\n使用示例:\n\ncsharp\nFadeIn fadeIn;\n\nprivate void Awake()\n{\n fadeIn = GetComponent<FadeIn>();\n if (fadeIn == null)\n {\n fadeIn = gameObject.AddComponent<FadeIn>();\n }\n}\n\nprivate void Start()\n{\n // 激活游戏对象并淡入\n fadeIn.SetActive(true);\n}\n\n\n使用时,您需要将FadeIn脚本附加到您想要控制淡入的游戏对象上,并在需要时调用SetActive方法来激活或禁用游戏对象,并实现淡入效果。

Unity DOTween 淡入效果实现 - 使用 CanvasGroup 和 DOFade

原文地址: https://www.cveoy.top/t/topic/pYV9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录