【问题标题】:Fading Alpha Values In Unity?在 Unity 中褪色 Alpha 值?
【发布时间】:2016-10-29 20:19:24
【问题描述】:

我正在使用 Unity 5.4.0f3 为 Android 制作游戏,但无法淡出精灵的 color.a 值。我尝试过动画,但它们似乎对我不起作用。我曾尝试使用来自herehere 的代码,但这些代码也不起作用。我希望精灵在被点击时淡出大约 1 秒。我想我需要使用for 循环和Mathf.Lerp。请帮忙。

编辑:这是我想要淡出的对象的 Inspector 视图的图像。

【问题讨论】:

  • 向我们展示对象附加的材质的屏幕截图,尤其是它的着色器类型。
  • 添加图片到问题

标签: c# unity3d unity5 unity3d-2dtools


【解决方案1】:

因为Sprite-Default 材料不可修改。

试试这个:

最简单的方法:

/* Modify SpriteRenderer.color instead of Material.color */ 
//Get the renderer via GetComponent or have it cached previously
var renderer = GetComponent<SpriteRenderer>();
renderer.color = new Color(0f, 0f, 0f, 0f); // Do your lerping stuff with this property

如果你还想修改材质

  1. Project 选项卡中创建一个新材质并将其命名为您喜欢的任何名称 想。 Project 标签 -> Create -> Material.

  2. 为它分配一个着色器,如下图所示。

  3. 将新创建的material 分配给您的 Sprite 渲染器 Material 插槽。请注意,现在您可以修改材质颜色 检查员。它不再变灰。你应该跑 你再次编码,它应该可以工作。

【讨论】:

    【解决方案2】:

    当然改变sprRender.color,而不是color.a。简单的代码,Fadeout 工作。添加您的高级。

    using UnityEngine;
    using System.Collections;
    
    [RequireComponent(typeof(SpriteRenderer))]
    
    public class FadeOut : MonoBehaviour {
        SpriteRenderer sprRender;
    
        void Start()
        {
            sprRender = GetComponent<SpriteRenderer>();
        }
    
        void Update()
        {
            sprRender.color -= new Color(0, 0, 0, Time.deltaTime);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-09-03
      • 2020-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-15
      • 2015-09-19
      • 2012-10-24
      相关资源
      最近更新 更多