如何统一勾选和取消勾选脚本中的切换(图形方式)
How to tick and untick a toggle from script in unity (graphically)
我正在 unity 中创建一个游戏,我正在主菜单上和玩游戏时进行设置页面。我有一个用于启用 vsync 和禁用的开关,但是如果在主菜单中选中了检查,则在播放时不会检查它,所以我只是创建了一个布尔值,如果它是真的,我希望它检查开关,如果它是假的,则取消选中它但是我不知道该怎么做,也没有找到答案。非常感谢
public void Modifyvsync()
{
if (vsynconoff.isOn)
{
QualitySettings.vSyncCount = 1;
}
else
{
QualitySettings.vSyncCount = 0;
}
PlayerPrefs.SetInt("vsyncount", QualitySettings.vSyncCount);
}
这是我链接到切换的方法,但是如果我进入播放场景并 return 返回设置菜单,即使我选中了切换,切换也不会被选中。
我希望它在我改变场景后仍保持选中状态
您可以使用 isOn
属性 设置切换组件的值。
toggle.isOn = true;
已解决
public bool isvsyncactive;
int booltoint(bool val)
{
if (val)
return 1;
else
return 0;
}
bool intToBool(int val)
{
if (val != 0)
return true;
else
return false;
}
public void Modifyvsync()
{
if (vsynconoff.isOn == true)
{
QualitySettings.vSyncCount = 1;
isvsyncactive = true;
}
else
{
QualitySettings.vSyncCount = 0;
isvsyncactive = false;
}
PlayerPrefs.SetInt("vsynconoroff", booltoint(isvsyncactive)) ;
void Update()
{ vsynconoff.isOn = intToBool(PlayerPrefs.GetInt("vsynconoroff"));
}
问题是我取了一个 bool 变量,如果 vsync 处于活动状态则为 true,如果 vsync 被禁用则为 false,我将其转换为 1 表示 true 和 0 表示 false 因为 PlayerPrefs 无法在其中存储 bool 变量。因此,在更新方法中,我再次将它转换为布尔值,然后如果它是真的,那么如果我重新启动场景,切换将被打勾
我正在 unity 中创建一个游戏,我正在主菜单上和玩游戏时进行设置页面。我有一个用于启用 vsync 和禁用的开关,但是如果在主菜单中选中了检查,则在播放时不会检查它,所以我只是创建了一个布尔值,如果它是真的,我希望它检查开关,如果它是假的,则取消选中它但是我不知道该怎么做,也没有找到答案。非常感谢
public void Modifyvsync()
{
if (vsynconoff.isOn)
{
QualitySettings.vSyncCount = 1;
}
else
{
QualitySettings.vSyncCount = 0;
}
PlayerPrefs.SetInt("vsyncount", QualitySettings.vSyncCount);
}
这是我链接到切换的方法,但是如果我进入播放场景并 return 返回设置菜单,即使我选中了切换,切换也不会被选中。 我希望它在我改变场景后仍保持选中状态
您可以使用 isOn
属性 设置切换组件的值。
toggle.isOn = true;
已解决
public bool isvsyncactive;
int booltoint(bool val)
{
if (val)
return 1;
else
return 0;
}
bool intToBool(int val)
{
if (val != 0)
return true;
else
return false;
}
public void Modifyvsync()
{
if (vsynconoff.isOn == true)
{
QualitySettings.vSyncCount = 1;
isvsyncactive = true;
}
else
{
QualitySettings.vSyncCount = 0;
isvsyncactive = false;
}
PlayerPrefs.SetInt("vsynconoroff", booltoint(isvsyncactive)) ;
void Update()
{ vsynconoff.isOn = intToBool(PlayerPrefs.GetInt("vsynconoroff"));
}
问题是我取了一个 bool 变量,如果 vsync 处于活动状态则为 true,如果 vsync 被禁用则为 false,我将其转换为 1 表示 true 和 0 表示 false 因为 PlayerPrefs 无法在其中存储 bool 变量。因此,在更新方法中,我再次将它转换为布尔值,然后如果它是真的,那么如果我重新启动场景,切换将被打勾