按钮`OnSelect`不Unity.UI帆布运行情况(Button `OnSelect` not

2019-09-27 01:15发布

我有三个按钮,当你点击一个按钮,用文本面板出现。

问题是,当我重视剧本,没有任何反应。 “点击”已注册但从未出现在面板上。

我的脚本连接到每个按钮的,是这样的:

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);
}

我大概有做别的事情与面板,但我无法弄清楚。

Answer 1:

像这样做:

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

(2)大尖-一定要与屏幕尺寸的选择比例

那是你曾经使用的唯一一个。 团结无意中设定了错误的默认那里,他们没有固定的呢。

(3)在你的画布,添加一个按钮用户可以或许说“测试”

(3)在你的画布,添加一个按钮用户可以或许说“另一个测试”

(4)使脚本这样的事情...

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

(5)把该脚本的一个副本任何你喜欢的对象。 你可以把它放在你的相机上,在画布上,或其他任何地方是有道理的

现在让我们假设你把它放在你的相机对象,例如。

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

而做到这一点?

  1. 点击的OnClick下的加号按钮

  2. 你看,上面写着“_main”在这个例子中插槽。 从层次结构拖动CAMERA项目,该槽

  3. 使用下拉菜单:

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

不错吧?

  1. 现在对于其他按键,做相同的,但选择“UserClickedAnotherTest()”函数。

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

你不能使用OnSelect ,除非你使用的系统ISelectHandler和更多的东西:它是困难的初学者。 我强烈建议OP大师简单的技术我在这里解释一下。 请享用!



Answer 2:

也许你连接的脚本到面板上。 如果是这样,你的脚本不能只要你的游戏对象是SETACTIVE(假)执行。

我希望我能够帮助你。



文章来源: Button `OnSelect` not functioning in Unity.UI Canvas situation