首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在“清醒”或“启动”时调用开关语句

在“清醒”或“启动”时调用开关语句
EN

Stack Overflow用户
提问于 2016-02-04 12:13:31
回答 1查看 81关注 0票数 2

下面的代码有问题吗?Debug打印正确的chosenScenario,但是无论我测试哪个选项(1,2,3,4),它都不会在switch块中.我是不是在做傻事?

代码语言:javascript
复制
void Awake()
{
    Setup();
}

void Setup()
{
    // Retrieve the user's selected scenario through player preference log.
    string selectedScenario = PlayerPrefs.GetString("selectedScenario");
    int chosenScenario = PlayerPrefs.GetInt("chosenScenario");

    // Print some useful information.
    Debug.Log("Selected Training Scenario is " + selectedScenario + " which is scenario number " + chosenScenario);

    switch (chosenScenario)
    {
        case 1:
                Debug.Log("Made it here 1");
                break;
        case 2:
                Debug.Log("Made it here 2");
                break;
        case 3:
                Debug.Log("Made it here 3");
                break;
        case 4:
                Debug.Log("Made it here 4");
                break;
        default:
                Debug.Log(chosenScenario);
                break;
    }
}

控制台输出的屏幕截图:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-04 13:29:56

添加以下内容:

代码语言:javascript
复制
  switch (chosenScenario)
    {
        case 0:
                Debug.Log("Hell, the preference was not saved");
                break;
        case 1:
                Debug.Log("Made it here 1");
                break;
        .. continue as before ..

你就会立刻看到你的问题。

关于这个,

Debug.Log(“选定的场景号”+ chosenScenario);

我想让您实际拍摄控制台的屏幕截图,并向我们展示输出!

对于这种奇怪的控制台问题,需要记住的四个关键点--

  1. 仔细检查Debug输出行来自哪个控制台
  2. 单击控制台行,查看“底部部分”中的更多信息。
  3. 永远不要打印裸露的Debug.Log(x),而要做这个Debug.Log("yo "+x);
  4. 别忘了臭名昭著的“崩溃”了! https://stackoverflow.com/a/34713627/294884

你的问题很可能是:

我知道它是4,因为在脚本中(在这个脚本之前运行),我将它设置为4,所以我希望在这里看到Made it 4消息,但是没有任何东西被打印到控制台。

总是,总是,总是在设置prefs之后运行“保存”(这只是关于统一的愚蠢的事情之一).

代码语言:javascript
复制
PlayerPrefs.SetString(PString, fs);
PlayerPrefs.Save();

这是一个典型的例程..。

代码语言:javascript
复制
private void WritePrefs()
    {
    List<string> ff = new List<string>();
    foreach (Thingy th in Thingies ) ff.Add(th.Info.handyCode);
    string fs = String.Join(",", ff.ToArray());
    PlayerPrefs.SetString(PString, fs);
    PlayerPrefs.Save();
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35200736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档