我正在创建一个功能,可以在按下按钮时更改切换按钮的背景图像,但对我来说无法正常工作。
我目前有这个功能:
public Image Background1;
public Image Background2;
public Toggle theToggle;
public void ChangeBackground()
{
if (theToggle.isOn) {
theToggle.image () = Background1;
}
else
{
theToggle.image() = Background2;
}
}
我的问题是在场景视图中我没有收到插槽选项,以便将图像添加到Background1和Background2,就像在其他脚本上一样。此外,编辑器无法识别图像参数,尽管它在脚本参考上并且我已使用以下内容添加了UI lybrary:
using UnityEngine.UI;
另外,我试图将UpdateBackground()函数放在Update()函数中,就像这样,我收到一个解析错误:
public Image Background1;
public Image Background2;
public Toggle theToggle;
void Update ()
{
public void ChangeBackground()
{
if (theToggle.isOn) {
theToggle.image () = Background1;
}
else
{
theToggle.image() = Background2;
}
}
}
这个解析错误很奇怪,因为这是我在其他脚本中的方式。你能救我吗?
答案 0 :(得分:2)
好的,你有一个编译器错误,因为你试图调用函数“image”并同时为它赋值。我的猜测是你想将image属性设置为某个Sprite类型变量“Background1”
所以你要改变这样:
public void ChangeBackground()
{
if (theToggle.isOn) {
theToggle.image = Background1;
}
else
{
theToggle.image = Background2;
}
}
}
现在,当编译器出错时,检查员不会使用脚本中的新字段进行更新。因此,如果您在脚本中的某个位置声明了变量(通常在类声明之后),如下所示:
public Image background1;
public Image background2;
只要您没有编译错误并且它们是公开的,它们就会出现在检查器中,等待设置
此外,您不能在C#和大多数编程语言中放置函数声明,也不想放置函数声明。
你必须将ChangeBackground
功能拖到你的TOGGLE上。将它拖到这里......
请注意!以下是非常先进的信息,与Grow的问题没有直接关系。
切换切换时应用ChangeBackground函数的简单方法是,您可以通过包含以下两个函数在脚本中执行此操作:
void OnEnable()
{
theToggle.onValueChanged += ChangeBackground
}
void OnDisable()
{
theToggle.onValueChanged -= ChangeBackground
}