繁体   English   中英

如何检测游戏对象的特定不透明度? Unity2D

[英]How do I detect an especific opacity of a gameObject? Unity2D

我不知道如何从我的游戏对象的不透明度中获得一定的价值。 我想做一个激光,所以我做了一个 animation 我的激光从 0 到 230,然后回到 0。我希望它只有在不透明度为 230 时才会造成损坏,但我不知道如何;(。可以有人帮我吗?这是我的 animation 的一部分

颜色在内部存储为float01

因此,假设您可以访问您的 object 它可能类似于例如

public class DamageController : MonoBehaviour
{
    // Here you drag in the according object
    [SerializeField] private Renderer renderer;

    // Due to imprecision I would go one lower just to be sure
    private float targetAlpha = 229f/255f;

    private void Update ()
    {
        if(renderer.material.color.a >= targetAlpha)
        {
            // However you deal damage
            DealDamage (amountPerSecond * Time.deltaTime);
        }
    }
}

但是,实际上并不需要检查 alpha!

无论如何,您都有一个 animation 所以您也可以简单地减少组件,例如

public class DamageController : MonoBehaviour
{
    private void Update ()
    {
        // However you deal damage
        DealDamage (amountPerSecond * Time.deltaTime);
    }
}

现在简单地附加动画这个组件的enabled state!

使其默认禁用,并且仅在所需时间段内的 animation 内启用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM