在 Unity 中从 C# 更改切换图像
Change toggle image form C# in Unity
我创建了一个带有四个开关的开关组,并安装了交换图像以突出显示。结果,我希望切换图像有四种状态 - 背景、突出显示、真和假。
我认为,我只能使用脚本 C# 来完成。我尝试使用 toggle.targetGrafic
和 toggle.grafic
无效。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class LoadQuestion : MonoBehaviour
{
public Toggle toggleA;
public Toggle toggleB;
public Toggle toggleC;
public Toggle toggleD;
public Image trueA;
public Image falseA;
public Image backA;
public void CheckAnswer()
{
if ( toggleA.isOn )
{
toggleA.targetGraphic = trueA; //Resources.Load("Sprites/logo") as Image;
}
}
}
CheckAnswer()
我被导入到引擎中的 On Value Changed (Boolean)。
Resources.Load
- 也没有给出结果并报错:
You must have a Image target in order to use a sprite swap transition.
如果你想在切换 on/off 时使用自定义图像,你可以使用这个:
在检查器中或通过脚本删除 Toggle 组件中对图形的引用
toggleA.graphic = null;
参考 Image 这是该图形组件并通过脚本更改该图像的 sprite;
public Toggle toggleA;
public Image toggleAImage;
public Sprite trueA;
public Sprite falseA;
private bool isOn;
private void Start()
{
toggleA.graphic = null;
}
public void CheckAnswer()
{
toggleAImage.sprite = isOn ? trueA : falseA;
isOn = !isOn;
}
不确定您要对背景和突出显示做什么,但您可以在切换组件的检查器中设置这些条件。请记住,切换由 2 个元素组成:背景图像和“检查”图像。您可以仅在检查器中为背景设置高亮状态精灵交换。我上面的代码用于“检查”图像。
我创建了一个带有四个开关的开关组,并安装了交换图像以突出显示。结果,我希望切换图像有四种状态 - 背景、突出显示、真和假。
我认为,我只能使用脚本 C# 来完成。我尝试使用 toggle.targetGrafic
和 toggle.grafic
无效。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class LoadQuestion : MonoBehaviour
{
public Toggle toggleA;
public Toggle toggleB;
public Toggle toggleC;
public Toggle toggleD;
public Image trueA;
public Image falseA;
public Image backA;
public void CheckAnswer()
{
if ( toggleA.isOn )
{
toggleA.targetGraphic = trueA; //Resources.Load("Sprites/logo") as Image;
}
}
}
CheckAnswer()
我被导入到引擎中的 On Value Changed (Boolean)。
Resources.Load
- 也没有给出结果并报错:
You must have a Image target in order to use a sprite swap transition.
如果你想在切换 on/off 时使用自定义图像,你可以使用这个: 在检查器中或通过脚本删除 Toggle 组件中对图形的引用
toggleA.graphic = null;
参考 Image 这是该图形组件并通过脚本更改该图像的 sprite;
public Toggle toggleA;
public Image toggleAImage;
public Sprite trueA;
public Sprite falseA;
private bool isOn;
private void Start()
{
toggleA.graphic = null;
}
public void CheckAnswer()
{
toggleAImage.sprite = isOn ? trueA : falseA;
isOn = !isOn;
}
不确定您要对背景和突出显示做什么,但您可以在切换组件的检查器中设置这些条件。请记住,切换由 2 个元素组成:背景图像和“检查”图像。您可以仅在检查器中为背景设置高亮状态精灵交换。我上面的代码用于“检查”图像。