Unity多个UI左右循环翻页代码
时间: 2024-03-12 18:42:53 浏览: 114
以下是一个简单的Unity多个UI左右循环翻页的示例代码:
```csharp
using UnityEngine;
using UnityEngine.UI;
public class UICarousel : MonoBehaviour
{
public GameObject[] panels; // 存储所有UI面板
public Button btnPrev; // 向左翻页按钮
public Button btnNext; // 向右翻页按钮
private int currentIndex = 0; // 当前显示的UI面板的索引值
private void Start()
{
// 初始化时,将当前显示的UI面板设置为Active状态,其他UI面板为Inactive状态
for (int i = 0; i < panels.Length; i++)
{
panels[i].SetActive(i == currentIndex);
}
// 绑定按钮事件
btnPrev.onClick.AddListener(() => { Page(-1); });
btnNext.onClick.AddListener(() => { Page(1); });
}
private void Page(int direction)
{
currentIndex += direction;
// 当索引值大于等于UI面板数量时,将其设置为0,表示从最后一个面板切换到第一个面板
if (currentIndex >= panels.Length)
{
currentIndex = 0;
}
// 当索引值小于0时,将其设置为UI面板数量减1,表示从第一个面板切换到最后一个面板
else if (currentIndex < 0)
{
currentIndex = panels.Length - 1;
}
// 根据当前显示的UI面板的索引值,设置当前显示的UI面板为Active状态,其他UI面板为Inactive状态
for (int i = 0; i < panels.Length; i++)
{
panels[i].SetActive(i == currentIndex);
}
}
}
```
在这个示例代码中,我们定义了一个UICarousel类来处理多个UI左右循环翻页的逻辑。在Start方法中,我们将当前显示的UI面板设置为Active状态,其他UI面板为Inactive状态,并且绑定了两个按钮的事件。在Page方法中,我们根据翻页方向更新当前显示的UI面板的索引值,并且根据索引值设置当前显示的UI面板的状态。最后,在按钮事件中,调用Page方法并传递翻页方向参数。
阅读全文