You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现仅激活选中的GameObject,禁用其余所有GameObject?

翻书功能实现优化方案

你的需求是点击书页时仅保留当前选中的GameObject激活,其余全部禁用,现有代码逻辑可行,但可以简化写法、去除冗余操作,以下是优化方案:

现有代码可优化点

  1. pageFlu方法中,调用whatPage()后重复执行bookPages[currentPage].SetActive(true)属于冗余操作,因为whatPage()内已经完成了当前页的激活逻辑。
  2. while循环的写法可以替换为更简洁直观的for循环,提升代码可读性。

优化后的代码

public GameObject[] bookPages;
int currentPage;

// 统一处理页面显示逻辑
public void ShowCurrentPage()
{
    for (int i = 0; i < bookPages.Length; i++)
    {
        // 仅当前页保持激活,其余页禁用
        bookPages[i].SetActive(i == currentPage);
    }
}

// 示例:点击后切换到指定页码(索引从0开始,currentPage=1对应第二页)
public void OnPageClick()
{
    currentPage = 1;
    ShowCurrentPage();
}

扩展说明

如果需要支持点击不同书页动态切换页码,可以给每个书页的点击事件绑定带索引参数的方法,直接传递当前页的索引:

// 给每个书页的点击事件绑定此方法,传入对应页的索引
public void OnPageClicked(int pageIndex)
{
    currentPage = pageIndex;
    ShowCurrentPage();
}

内容的提问来源于stack exchange,提问作者Nicole Erasga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 15:41:13