c# - 在 Unity 中更改切换图像表单 C#
问题描述
我创建了一个带有四个切换的切换组,并安装了交换图像以突出显示。结果,我希望切换图像具有四种状态 - 背景、突出显示、真和假。
我认为,我只能使用脚本 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
- 也不给出结果和报告错误:
您必须有一个 Image 目标才能使用精灵交换过渡。
解决方案
如果您想在切换开/关时拥有自定义图像,您可以使用:Remove reference to graphics in Toggle component in inspector or by script
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;
}
不确定您要对背景和突出显示做什么,但您可以在 Toggle 组件的检查器中设置这些条件。请记住,该切换由 2 个元素组成:背景图像和“检查”图像。您只能在检查器中为背景设置突出显示的状态精灵交换。我上面的代码用于“检查”图像。
推荐阅读
- forms - Vue.js 范围滑块,设置 v-model 并获取更改
- c# - 使用 Lambda/Linq EF C# 从 3 个模型中获取值,其中 1 个模型是主根
- spring - 也许不公开或无效?使用 Spring 的 Websocket 和 Kafka
- python - 程序:“G”/“g”之后的单词(python)
- javascript - d3.json observablehq 的项目限制
- c# - 我应该什么时候处理异常,什么时候应该抛出它们?
- ruby-on-rails - 在 ar_multidb 中拆分读取到从属并写入到主控
- javascript - 动态数据绑定不起作用 Angular Chrome 扩展
- python - 同一个类中的同名函数 - 有没有一种优雅的方法来确定调用哪个?
- mongodb - 撇号 cms 版本 2.65.0 在运行项目时出现错误