1

我有三个按钮,当您点击一个按钮时,会出现一个带有文本的面板。

问题是当我附加脚本时,没有任何反应。“点击”已注册,但面板从未出现。

我的脚本附加到每个按钮,是这样的:

public GameObject panel; //i use to put the panel in unity
bool selected = false;

void Start () {    
    panel.SetActive(false); 
}

void OnSelect() {    
    selected = !selected;
    panel.SetActive(true);
}

我可能必须对面板做其他事情,但我无法弄清楚。

4

2 回答 2

1

像这样做:

(1) 将画布添加到您的项目中

(2) 大提示 - 一定要选择Scale with screen size

那是你唯一使用过的。Unity 不小心在那里设置了错误的默认值,他们还没有修复它。

(3) 在你的画布中,添加一个BUTTON 让它说也许是“测试”

(3)在你的画布中,添加另一个BUTTON 让它说也许是“另一个测试”

(4) 编写一个类似这样的脚本...

public class MainScreen:MonoBehaviour
    {
    public void UserClickedTest()
        {
        Debug.Log("test..");
        }
    public void UserClickedAnotherTest()
        {
        Debug.Log("another test..");
        }
    }

(5) 将该脚本的一份副本放在您喜欢的任何对象上。你可以把它放在你的相机上、画布上或任何其他有意义的地方

例如,现在假设您将它放在 CAMERA 对象上。

(6) 点击按钮“测试”......

在此处输入图像描述

并这样做...

  1. 单击 OnClick 下的加号按钮

  2. 您会在此示例中看到显示“_main”的插槽。将您的 CAMERA 项目从 HEIRARCHY 拖到该插槽

  3. 使用下拉菜单:

选择“UserClickedTest()”函数...

好啊?

  1. 现在对于另一个按钮,执行相同的操作,但选择“UserClickedAnotherTest()”函数。

  2. 你完成了!运行和测试!

除非您使用更多的东西,否则您无法使用该OnSelect系统ISelectHandler:对于初学者来说很难。我强烈建议 OP 掌握我在这里解释的更简单的技术。享受!

于 2016-11-11T18:32:35.230 回答
0

也许您将脚本附加到面板上。如果是这样,只要您的 GameObject 为 SetActive(false),您的脚本就无法执行。

我希望我能帮助你。

于 2016-11-11T18:25:56.983 回答