画布到画布(MainMenu到选项)相同场景Unity

时间:2016-07-29 14:03:42

标签: c# canvas unity3d

我希望OptionButton的{​​{1}}隐藏MainMenu,以便我可以使用MainMenuCanvas,这可能吗?

OptionCanvas

2 个答案:

答案 0 :(得分:2)

应该可以。虽然我建议使用Canvas.enabled(https://docs.unity3d.com/ScriptReference/Behaviour-enabled.html)变量来保持一致性。

只需在脚本中创建一个函数来处理点击。 f.e。

void onOptionsClick(){
if(mainMenuCanvas.enabled){
    mainMenuCanvas = false;
    optionCanvas = true;
 }  
 else{
    mainMenuCanvas = true;
    optionCanvas = false;
 }
}

这个功能可以做你想要的。然后,您只需选择按钮并选择此功能作为检查器中该按钮的onClick()。

让我知道这是否有效,因为我无法测试它atm!

答案 1 :(得分:2)

您只需将OptionButton事件注册到某个功能即可。单击Button时,将调用已注册的函数。 Button.onClick.AddListener用于注册Button事件。 Button.onClick.RemoveAllListeners用于取消注册Button事件。

private GameObject mainMenu, options;
public Button OptionButton;

void Awake()
{
    mainMenu = GameObject.Find("MainMenuCanvas");
    options = GameObject.Find("OptionCanvas");
}

void Start()
{
    mainMenu.SetActive(true);
    options.SetActive(false);
}

void OnEnable()
{
    //Register Button Event
    OptionButton.onClick.AddListener(() => OptionButtonCallBack());

}

//Will be called when OptionButton is clicked
private void OptionButtonCallBack()
{
    mainMenu.SetActive(false);
    options.SetActive(true);
}

void OnDisable()
{
    //Un-Register Button Event
    OptionButton.onClick.RemoveAllListeners();
}

您可以找到设置用户界面here的完整步骤。