En Unity, cómo hacer que el texto forme un cambio claro y oscuro con la selección de la barra de opciones Alternar

En Unity, cómo hacer que el texto forme un cambio claro y oscuro con la selección de la barra de opciones Alternar

Encontré un problema al aprender la UGUI de Unity antes: cómo hacer que el título de la barra de opciones del componente Toggle siga la selección de la barra de opciones, para que pueda sincronizarse con la barra de opciones para el intercambio de luz y oscuridad (interruptor).

Busqué muchas preguntas similares en Internet para obtener respuestas, y todos los resultados me enseñan cómo usar Toggle para crear la barra de opciones con capacidad de selección. Más tarde, poco a poco encontré una manera:
siempre que la propiedad IsOn del componente Toggle se pueda monitorear en tiempo real, la sincronización no será un gran problema.

void Update()
    {
    
    
        Tg.onValueChanged.AddListener((bool isOn)=>OnToggleClick(Tg, isOn));
    }//用Toggle.onValueChanged.AddListener来实现实时监听。

En cuanto al cambio del texto, puede considerar ajustar el RGB del texto en la función, o simplemente como yo.

public void OnToggleClick(bool value)
    {
    
    
        if(value)
        {
    
    
            SelectText.SetActive(true);
            NomalText.SetActive(false);
        }
        else
        {
    
    
            SelectText.SetActive(false);
            NomalText.SetActive(true);
        }
    }

Inserte la descripción de la imagen aquí

Crea dos Textos, uno es el título en el estado normal (no seleccionado) y el otro es el título en el estado seleccionado, colócalos en la misma posición y usa el método SetActice para cambiar.

El código general es el siguiente:

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);
        }
    }
}

Supongo que te gusta

Origin blog.csdn.net/Nanceker/article/details/115335657
Recomendado
Clasificación