c# - 如何在统一 c# 中切换?
问题描述
我正在尝试切换标签以使用切换按钮进行更改,但我无法弄清楚。使用代码 1,它根本不会更改为值,而使用代码 2,它会在一瞬间发生变化。我不知道如何让它切换并保持切换状态。谁能帮我解决这个问题
代码 1
bool isActive = false;
public void OnGUI() {
if (Input.GetKeyDown("insert"))
{
isActive = !isActive;
}
if (isActive == true)
{
GUI.Label(new Rect(0, 0, 500, 500), "on");
}
else
{
GUI.Label(new Rect(0, 0, 500, 500), "off");
}
代码 2
public void OnGUI() {
bool isActive = false;
if (Input.GetKeyDown("insert"))
{
isActive = !isActive;
}
if (isActive == true)
{
GUI.Label(new Rect(0, 0, 500, 500), "on");
}
else
{
GUI.Label(new Rect(0, 0, 500, 500), "off");
}
解决方案
您应该调用GetKeyDown
fromUpdate
函数,因为状态会为每一帧重置。我建议使用KeyCode
as well 而不是字符串键名。
样本
public class ExampleClass : MonoBehaviour
{
bool isActive = false;
void Update()
{
if (Input.GetKeyDown(KeyCode.Insert))
{
isActive = !isActive;
}
}
void OnGUI()
{
if (isActive == true)
{
GUI.Label(new Rect(0, 0, 500, 500), "on");
}
else
{
GUI.Label(new Rect(0, 0, 500, 500), "off");
}
}
}
推荐阅读
- excel - Excel 日期格式正在 Moblie Preview 上从日期更改为常规
- pyomo - pyomo 中的差异化
- sql - 在树形结构中计算公司中的人员
- c++ - 尝试实例化 bitset 并获取“非类型模板参数不是常量表达式”
- ios - Xcode 9.3 快速帮助(选项+单击)显示为空
- node.js - Hyperledger Fabric 教程“错误:未知标志:--peerAddresses”
- javascript - 基于Javascript的滑块不起作用
- php - 将存储在 JSON 数组中的字符串转换为 PHP 中的变量名
- android - 在 Android Studio 中更改布局后需要清理项目
- sql - SQL如何查找某个位是否打开