public GameObject Pan1; public GameObject Imag1; public GameObject Pan2; public GameObject Imag2; public GameObject Pan3; public GameObject Imag3; public GameObject Pan4; public GameObject Imag4; public GameObject Pan5; public GameObject Imag5; public void bt1() { if (Pan1.activeSelf == false) { Pan1.SetActive(true); Imag1.SetActive(true); Pan2.SetActive(false); Imag2.SetActive(false); Pan3.SetActive(false); Imag3.SetActive(false); Pan4.SetActive(false); Imag4.SetActive(false); Pan5.SetActive(false); Imag5.SetActive(false); } else { Pan1.SetActive(false); Imag1.SetActive(false); } } public void bt2() { if (Pan2.activeSelf == false) { Pan2.SetActive(true); Imag2.SetActive(true); Pan1.SetActive(false); Imag1.SetActive(false); Pan3.SetActive(false); Imag3.SetActive(false); Pan4.SetActive(false); Imag4.SetActive(false); Pan5.SetActive(false); Imag5.SetActive(false); } else { Pan2.SetActive(false); Imag2.SetActive(false); } } unity 这段代码功能不变 用更好的方法整理减少
时间: 2024-02-14 21:11:18 浏览: 58
可以使用数组和循环来简化代码,如下所示:
```
public GameObject[] panels;
public GameObject[] images;
public void ShowPanel(int index) {
for (int i = 0; i < panels.Length; i++) {
if (i == index) {
panels[i].SetActive(true);
images[i].SetActive(true);
} else {
panels[i].SetActive(false);
images[i].SetActive(false);
}
}
}
```
然后在按钮的 OnClick 事件里分别调用 ShowPanel 方法,传入对应的索引即可。这样可以减少重复的代码,也更加灵活。
相关问题
public GameObject Pan1; public GameObject Pan2; public void bt1() { if (Pan1.activeSelf == false) { Pan1.SetActive(true); Pan2.SetActive(false); } else { Pan1.SetActive(false); } } public void bt2() { if (Pan2.activeSelf == false) { Pan2.SetActive(true); Pan1.SetActive(false); } else { Pan2.SetActive(false); } } Unity 在这个代码上更改 按钮组和panl组 显示隐藏
这段代码是用于在 Unity 中实现按钮和面板的显示和隐藏切换。其中,Pan1 和 Pan2 分别代表两个不同的面板,bt1 和 bt2 是两个不同的按钮。当点击 bt1 按钮时,如果 Pan1 面板当前为隐藏状态,就将其显示出来,并将 Pan2 面板隐藏;如果 Pan1 面板当前为显示状态,就将其隐藏。当点击 bt2 按钮时,同理。这样就可以实现通过点击不同的按钮来控制不同的面板的显示和隐藏。
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Duihua : MonoBehaviour { public Text Duihuakuang;//对话框文本 void Start() { Duihuakuang = GetComponent<Text>(); } public Text Button1_text; public Text Button2_text; public GameObject Button1; public GameObject Button2; public GameObject Button3; public GameObject Buttonjixu; public GameObject shurukuang;//输入框显示 public InputField shuru_text;//输入框文 public GameObject LiHui;//立绘底板 public Sprite Sanjiao;//两个图片 public Sprite Lutou; public int AA = 0;//大进度 public int n = 0;//小进度 public int anniu = 0;//按钮选项 public Jueseshuxing Shuxin;
这段代码定义了一个名为`Duihua`的类,包含了一些成员变量和方法。这些成员变量和方法的作用如下:
- `Duihuakuang`:类型为`Text`,表示对话框的文本组件。
- `Button1_text`:类型为`Text`,表示按钮1的文本组件。
- `Button2_text`:类型为`Text`,表示按钮2的文本组件。
- `Button1`:类型为`GameObject`,表示按钮1的游戏对象。
- `Button2`:类型为`GameObject`,表示按钮2的游戏对象。
- `Button3`:类型为`GameObject`,表示按钮3的游戏对象。
- `Buttonjixu`:类型为`GameObject`,表示继续按钮的游戏对象。
- `shurukuang`:类型为`GameObject`,表示输入框的游戏对象。
- `shuru_text`:类型为`InputField`,表示输入框的文本组件。
- `LiHui`:类型为`GameObject`,表示立绘底板的游戏对象。
- `Sanjiao`:类型为`Sprite`,表示一个三角形图片。
- `Lutou`:类型为`Sprite`,表示一个路灯图片。
- `AA`:类型为`int`,表示大进度。
- `n`:类型为`int`,表示小进度。
- `anniu`:类型为`int`,表示按钮选项。
- `Shuxin`:类型为`Jueseshuxing`,表示角色属性。
其中`Start()`方法会在游戏对象第一次被激活时执行,用来初始化`Duihuakuang`变量。其他的成员变量表示游戏中的一些UI元素、图片和角色属性,它们可以在游戏中被访问和修改。
阅读全文