unity 多个UI预制体加载同一个button预制体,button预制体点击事件响应时获取UI预制体下的一个UI,改变值,用代码怎么写
时间: 2024-05-26 09:12:51 浏览: 79
界面插件New-UI-Widgets v1.15.9f1
首先,你可以在每个UI预制体中添加对应的脚本,然后在这个脚本中获取需要改变的UI元素,并且把这个元素的引用保存在一个字段中。接下来,在button预制体的脚本中,你可以通过获取同级的所有UI预制体,然后遍历它们的脚本中的字段来获取需要改变的UI元素的引用。一旦获取到了这个引用,你就可以调用其公共方法来实现值的改变。
具体的代码可以如下所示:
// 在UI预制体中添加的脚本
public class MyUIScript : MonoBehaviour {
public Text myText;
// 在这儿添加你的公有方法,用于修改UI元素的值
public void SetValue(string value) {
myText.text = value;
}
}
// 在button预制体中添加的脚本
public class MyButtonScript : MonoBehaviour {
private List<MyUIScript> _uiList;
void Start() {
// 获取所有UI预制体的引用
_uiList = new List<MyUIScript>(GetComponentsInParent<MyUIScript>());
}
public void OnClick() {
// 查找需要改变的UI元素
foreach (MyUIScript uiScript in _uiList) {
// 这儿需要做一些判断,确定是该改变哪个UI元素(可以根据名称、标签等来判断)
if (uiScript.gameObject.name == "MyUIPrefabName") {
// 获取到了需要改变的UI元素,调用其公共方法来改变值
uiScript.SetValue("New Value");
break;
}
}
}
}
阅读全文