我目前正在制作一款与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;
}
}
}
答案 0 :(得分:4)
这对您不起作用的唯一原因是,在父级层次结构中的某个位置,您有一个带有另一个画布组的游戏对象。除非您在子画布中选中'Ignore Parent Groups'
复选框,否则它总是会覆盖子画布组设置