在OnTriggerEnter Unity中更改Text的CanvasGroup的alpha

时间:2015-04-16 20:16:17

标签: user-interface text unity3d alpha

我目前正在制作一款与Marble Blast Gold / Ultra相同的游戏。

此时我的文字与大理石一起定位。文本是画布的子项,我在文本中添加了画布组。我最初将画布组的alpha设置为0,以便您无法看到文本。

我想要做的就是让你拿起电源时,通过将画布组的alpha更改回1再重新显示文本,然后一旦使用了电源,就将其设置为0。

我现在的代码似乎没有运气。

// Super Jump pickup
    if (col.gameObject.tag == "Spring")
    {
        superJumpText.GetComponent<CanvasGroup>().alpha = 1;
        canSuperJump = true;
        canSuperSpeed = false;
        col.gameObject.SetActive(false);
        hitSuperJump = true;
        Invoke("Display", 20);
    }

    void Update()
{

    //super jump
    if (canSuperJump)
    {
        if (Input.GetKeyDown(KeyCode.Mouse0))
        {
            Vector3 jump = new Vector3(0, superJumpForce, 0);
            GetComponent<Rigidbody>().AddForce(jump);
            canSuperJump = false;
            superJumpText.GetComponent<CanvasGroup>().alpha = 0;
        }
    }
 }

1 个答案:

答案 0 :(得分:4)

这对您不起作用的唯一原因是,在父级层次结构中的某个位置,您有一个带有另一个画布组的游戏对象。除非您在子画布中选中'Ignore Parent Groups'复选框,否则它总是会覆盖子画布组设置

c