【问题标题】:Compare two functions (Checkbox) Unity比较两个函数(复选框) Unity
【发布时间】:2018-06-21 16:34:58
【问题描述】:

我想比较这两个函数

const string RADIO_ON_SPRITE_NAME = "popup_radiobtn01_on";
const string RADIO_OFF_SPRITE_NAME = "popup_radiobtn01_off";
[SerializeField] UIButton livestream = null;
[SerializeField] UIButton render = null;

 public void LiveStreaming()
{

    if (livestream.normalSprite == RADIO_OFF_SPRITE_NAME)
    {
        livestream.normalSprite = RADIO_ON_SPRITE_NAME ;
    } else
    {
        livestream.normalSprite = RADIO_OFF_SPRITE_NAME;
    }
}

public void Rendering()
{

    if (render.normalSprite == RADIO_OFF_SPRITE_NAME)
    {
        render.normalSprite = RADIO_ON_SPRITE_NAME;
    } else
    {
        render.normalSprite = RADIO_OFF_SPRITE_NAME;
    }
}

我在这里要做的是,当一个复选框被选中时,另一个复选框不应该被选中。顺便说一句,我正在使用 Unity 的 NGUI,这是我正在尝试做的事情的图像。

示例图片:

.

【问题讨论】:

标签: c# unity3d ngui


【解决方案1】:

解决了

public void LiveStreaming()
{
    //livestream.normalSprite = (livestream.normalSprite == RADIO_OFF_SPRITE_NAME) ? RADIO_ON_SPRITE_NAME : RADIO_OFF_SPRITE_NAME;
    if (livestream.normalSprite == RADIO_OFF_SPRITE_NAME)
    {
        livestream.normalSprite = RADIO_ON_SPRITE_NAME;
        isChecked = true;
        if (isChecked && render.normalSprite == RADIO_ON_SPRITE_NAME)
        {
            render.normalSprite = RADIO_OFF_SPRITE_NAME;
        }
    } else
    {
        livestream.normalSprite = RADIO_OFF_SPRITE_NAME;
        isChecked = false;
        if (!isChecked && render.normalSprite == RADIO_OFF_SPRITE_NAME)
        {
            render.normalSprite = RADIO_ON_SPRITE_NAME;
        }
    }
}

public void Rendering()
{
    //render.normalSprite = (render.normalSprite == RADIO_OFF_SPRITE_NAME) ? RADIO_ON_SPRITE_NAME : RADIO_OFF_SPRITE_NAME;
    if (render.normalSprite == RADIO_OFF_SPRITE_NAME)
    {
        render.normalSprite = RADIO_ON_SPRITE_NAME;
        isChecked = true;
        if (isChecked && livestream.normalSprite == RADIO_ON_SPRITE_NAME)
        {
            livestream.normalSprite = RADIO_OFF_SPRITE_NAME;
        }
    } else
    {
        render.normalSprite = RADIO_OFF_SPRITE_NAME;
        isChecked = false;
        if (!isChecked && livestream.normalSprite == RADIO_OFF_SPRITE_NAME)
        {
            livestream.normalSprite = RADIO_ON_SPRITE_NAME;
        }
    }
} 

【讨论】:

  • 您不应检查 UI 元素精灵的名称。
  • @Eldy 为什么我不能??
  • 可以,但这是不好的做法。您应该只依赖您的 isChecked 布尔值,并且精灵应该反映该布尔值的状态。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-08
  • 2017-11-04
  • 2020-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-12
相关资源
最近更新 更多