СПРОСИ ПРОФИ
👍
0
👎 00

Накладывание 1 выбора на 2

Делаю игру на юнити (Новеллу) и у меня пока есть два выбора. Варианты 1 выбора остаются с вариантами 2 выбора, как сделать чтоб они удалились?

Dialogs:
namespace Game.Data
{
[CreateAssetMenu(menuName = «Game/Data/» + nameof(Dialogs))]
public class Dialogs : ScriptableObject
{
[System.Serializable]
public class Dialog
{
[SerializeField] private string name;
[SerializeField][TextArea(5, 10)] private string _text;
[SerializeField] private ChoiseElement[] _choises;

public string Name ⇒ name;
public string Text ⇒ _text;

public ChoiseElement[] choises ⇒ _choises;
}

[System.Serializable]

public class ChoiseElement
{
[SerializeField] private string _text;
[SerializeField] private Dialogs _dialogs;

public string Text ⇒ _text;
public Dialogs Dialogs ⇒ _dialogs;
}

[SerializeField] private Dialog[] _dialogs;

public Dialog[] Get ⇒ _dialogs;




}

}

Say:
namespace Game.View
{
public class Say : MonoBehaviour
{
[SerializeField] private MyDialogs _dialogs;
[SerializeField] private TextMeshProUGUI _name;
[SerializeField] private TextMeshProUGUI _text;
[SerializeField] private Choise _choise;

public MyDialogs Dialogs { get; set; }

private int _index;

private void Start ()
{
if (_dialogs != null) NextDialog();
}

public void NextDialog ()
{
if (_index == _dialogs.Get.Length) return;




_name.SetText(_dialogs.Get[_index].Name);
_text.SetText(_dialogs.Get[_index].Text);

ChoiseCreate();

_index++;
}

private void ChoiseCreate()
{
if (_dialogs.Get[_index].choises.Length != 0)
{
_choise.Show();
foreach (MyDialogs.ChoiseElement element in _dialogs.Get[_index].choises)
_choise.Add(element, this);

}
}
public void Choise (ChoiseButton choiseButton)
{
_index = 0;
_dialogs = choiseButton.Dialogs;
choiseButton.Hide();
_choise.Hide();

}

}
}

Choise:
namespace Game.View
{
public class Choise : MonoBehaviour
{
[SerializeField] private Canvas _self;
[SerializeField] private Transform _parrent;
[SerializeField] private ChoiseButton _prefabs;

private ChoiseButton tmp;

public void Show () ⇒ _self.enabled = true;

public void Add(MyDialogs.ChoiseElement choiseElement, Say say)
{
tmp = Instantiate(_prefabs, _parrent);
tmp.Say = say;
tmp.Show(choiseElement);
}



public void Hide() ⇒ _self.enabled = false;


}
}

ChoseButton:
namespace Game.View
{
public class ChoiseButton : MonoBehaviour
{
[SerializeField] private TextMeshProUGUI _text;
[SerializeField] private Button _self;
[SerializeField] private Say _say;


public MyDialogs Dialogs { get; private set; }

public Say Say { set ⇒ _say = value; }

public void Show(MyDialogs.ChoiseElement choiseElement)
{
_text.SetText(choiseElement.Text);
Dialogs = choiseElement.Dialogs;
_self.onClick.AddListener(() ⇒ _say.Choise(this));
}

public void Hide() ⇒ Destroy(gameObject);







}

}

DialogInteraction:
public class DialogInteraction : MonoBehaviour
{
public Button button;
public Dialogs dialogs;

private void Start()
{
button.onClick.AddListener(OnButtonClicked);
}

private void OnButtonClicked()
{
button.gameObject.SetActive(false);
{
Destroy(gameObject);
}
}

Задайте свой вопрос по обучению программированию
профессионалам

Сейчас онлайн 75 репетиторов по обучению программированию
Получите ответ профи быстро и бесплатно
ASK.PROFI.RU © 2020-2025