按钮 `OnSelect` 在 Unity.UI Canvas 情况下不起作用
Button `OnSelect` not functioning in Unity.UI Canvas situation
我有三个按钮,当你点击一个按钮时,会出现一个带有文本的面板。
问题是当我附加脚本时,没有任何反应。
"click" 已注册,但面板从未出现。
我的脚本附在每个按钮上,是这样的:
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);
}
我可能需要对面板做一些其他的事情,但我想不出来。
也许您已将脚本附加到面板。如果是这样,只要您的 GameObject 为 SetActive(false),您的脚本就无法执行。
希望能帮到你。
这样做:
(1) 将 canvas 添加到您的项目
(2) 重要提示 - 请务必 select 随屏幕尺寸缩放 。
这是您唯一使用过的。 Unity 不小心在那里设置了错误的默认值,他们还没有修复它。
(3) 在您的 Canvas 中,添加一个 BUTTON 让它说“测试”
(3) 在你的 Canvas 中,添加另一个 BUTTON 让它说“Another Test”
(4) 制作一个类似这样的脚本...
public class MainScreen:MonoBehaviour
{
public void UserClickedTest()
{
Debug.Log("test..");
}
public void UserClickedAnotherTest()
{
Debug.Log("another test..");
}
}
(5) 将该脚本的一个副本放在您喜欢的任何对象上。您可以将其放在相机上、canvas 上或其他任何有意义的地方
例如,现在假设您将它放在您的 CAMERA 对象上。
(6) 点击按钮“测试”.....
然后这样做...
单击 OnClick 下的加号按钮
您会在本例中看到标有“_main”的插槽。将您的 CAMERA 项目从 HEIRARCHY 拖到该插槽
使用下拉菜单:
select“UserClickedTest()”函数...
好吗?
现在对于另一个按钮,执行相同的操作,但 select“UserClickedAnotherTest()”函数。
大功告成! 运行 并测试!
除非使用 ISelectHandler
和更多东西,否则您无法使用 OnSelect
系统:这对初学者来说很难。我强烈建议 OP 掌握我在这里解释的更简单的技术。享受吧!
我有三个按钮,当你点击一个按钮时,会出现一个带有文本的面板。
问题是当我附加脚本时,没有任何反应。 "click" 已注册,但面板从未出现。
我的脚本附在每个按钮上,是这样的:
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);
}
我可能需要对面板做一些其他的事情,但我想不出来。
也许您已将脚本附加到面板。如果是这样,只要您的 GameObject 为 SetActive(false),您的脚本就无法执行。
希望能帮到你。
这样做:
(1) 将 canvas 添加到您的项目
(2) 重要提示 - 请务必 select 随屏幕尺寸缩放 。
这是您唯一使用过的。 Unity 不小心在那里设置了错误的默认值,他们还没有修复它。
(3) 在您的 Canvas 中,添加一个 BUTTON 让它说“测试”
(3) 在你的 Canvas 中,添加另一个 BUTTON 让它说“Another Test”
(4) 制作一个类似这样的脚本...
public class MainScreen:MonoBehaviour
{
public void UserClickedTest()
{
Debug.Log("test..");
}
public void UserClickedAnotherTest()
{
Debug.Log("another test..");
}
}
(5) 将该脚本的一个副本放在您喜欢的任何对象上。您可以将其放在相机上、canvas 上或其他任何有意义的地方
例如,现在假设您将它放在您的 CAMERA 对象上。
(6) 点击按钮“测试”.....
然后这样做...
单击 OnClick 下的加号按钮
您会在本例中看到标有“_main”的插槽。将您的 CAMERA 项目从 HEIRARCHY 拖到该插槽
使用下拉菜单:
select“UserClickedTest()”函数...
好吗?
现在对于另一个按钮,执行相同的操作,但 select“UserClickedAnotherTest()”函数。
大功告成! 运行 并测试!
除非使用 ISelectHandler
和更多东西,否则您无法使用 OnSelect
系统:这对初学者来说很难。我强烈建议 OP 掌握我在这里解释的更简单的技术。享受吧!