Unityで、Toggleオプションバーを選択してテキストを明暗に変更する方法
以前にUnityのUGUIを学習したときに問題が発生しました。Toggleコンポーネントのオプションバーのタイトルをオプションバーの選択に従わせて、オプションバーと同期して明暗(スイッチ)交換を行う方法です。
私はインターネットで同様の質問をたくさん検索して答えを得ましたが、結果はすべて、Toggleを使用して選択機能を備えたオプションバーを作成する方法を教えています。後で、私はゆっくりと方法を見つけました
。ToggleコンポーネントのIsOnプロパティをリアルタイムで監視できる限り、同期はそれほど問題にはなりません。
void Update()
{
Tg.onValueChanged.AddListener((bool isOn)=>OnToggleClick(Tg, isOn));
}//用Toggle.onValueChanged.AddListener来实现实时监听。
テキストの変更については、関数内でテキストのRGBを調整することを検討するか、私のように検討することができます。
public void OnToggleClick(bool value)
{
if(value)
{
SelectText.SetActive(true);
NomalText.SetActive(false);
}
else
{
SelectText.SetActive(false);
NomalText.SetActive(true);
}
}
2つのテキストを作成します。1つは通常の(選択されていない)状態のタイトルで、もう1つは選択された状態のタイトルです。同じ位置に配置し、SetActiceメソッドを使用して切り替えます。
全体的なコードは次のとおりです。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class TextToggle : MonoBehaviour
{
public GameObject Tab;
public GameObject NomalText;
public GameObject SelectText;
private Toggle Tg;
private bool isOn;
void Start()
{
Tg = Tab.gameObject.GetComponent<Toggle>();
}
void Update()
{
Tg.onValueChanged.AddListener((bool isOn)=>OnToggleClick(isOn));
}
public void OnToggleClick(bool value)
{
if(value)
{
SelectText.SetActive(true);
NomalText.SetActive(false);
}
else
{
SelectText.SetActive(false);
NomalText.SetActive(true);
}
}
}