为什么我不能停用和激活下一个/上一个按钮?

问题描述 投票:0回答:1

Unity C#

我尝试停用教程最后一页(4)上的下一个按钮,并在我处于前一页(0-3)时将其激活。

[我也想在本教程的首页(0)时停用上一个按钮,而当我在本教程的下一页(1-4)时将其激活。

很遗憾,我不知道为什么,但是我做不到。按钮消失一次,出现一次。反过来,一旦消失,它就不会出现。谁能改善我的代码并解释我做错了什么?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System.IO;
using UnityEngine.SceneManagement;

public class MenuPanel : MonoBehaviour
{


public GameObject[] tutorialPage;


[SerializeField] GameObject buttonLeft;
[SerializeField] GameObject buttonRight;

int currentIndex = 0;

public int CurrentIndex
{

        get
        {
            return currentIndex;
        }
        set
        {
        if (tutorialPage[currentIndex] != null)
            {
                //set the current active object to inactive, before replacing it
            GameObject aktivesObj = tutorialPage[currentIndex];
            aktivesObj.SetActive(false);
            }

            if (value < 0)
            currentIndex = tutorialPage.Length - 1;
        else if (value > tutorialPage.Length - 1)
                currentIndex = 0;
            else
                currentIndex = value;
        if (tutorialPage[currentIndex] != null)
            {
            GameObject aktivesObj = tutorialPage[currentIndex];
                aktivesObj.SetActive(true);
            }
        }
    }

 public void Next(int direction)
 {
  if (direction >= 1)
  CurrentIndex++;


  if (currentIndex >= 4)
  { 
 buttonRight.SetActive(false);

   }

   if (currentIndex <= 3)
       {

buttonRight.SetActive(true);
     }
   }

   public void Previous(int 
   direction)
   {
   if (direction == 0)
   CurrentIndex--;


   if (currentIndex ==0)
   {
 buttonLeft.SetActive(false);
    }
    if (currentIndex >= 1)
    {
        buttonLeft.SetActive(true);
    }
   }          

    public void OnClickTutorialPanel()
{

    currentIndex = 0;
    buttonRight.SetActive(true);
    buttonLeft.SetActive(false);

    tutorialPage[0].SetActive(true);
    Tutorial.SetActive(true);
}




public void OnClickBackToSettings(){

    tutorialPage[currentIndex].SetActive(false);
    Tutorial.SetActive(false);


}
}
c# unity3d uibutton activation
1个回答
0
投票

仅在单击next时,您将打开/关闭右按钮。

仅在单击上一个时,您正在打开/关闭左按钮

您只需要添加代码即可从上一个打开next按钮,并从下一个打开next按钮

 public void Next(int direction)
 {
  if (direction >= 1)
  CurrentIndex++;


  if (currentIndex >= 4)
  { 
 buttonRight.SetActive(false);

   }

   if (currentIndex <= 3)
       {

buttonRight.SetActive(true);
     }

    if (currentIndex >= 1)
    {
        buttonLeft.SetActive(true);
    }
   }

  public void Previous(int 
   direction)
   {
   if (direction == 0)
   CurrentIndex--;


   if (currentIndex ==0)
   {
 buttonLeft.SetActive(false);
    }
    if (currentIndex >= 1)
    {
        buttonLeft.SetActive(true);
    }

   if (currentIndex <= 3)
       {

buttonRight.SetActive(true);
     }
   }      
© www.soinside.com 2019 - 2024. All rights reserved.