【问题标题】:Last line of typewriter script repeating before moving onto next scene?在进入下一个场景之前重复打字机脚本的最后一行?
【发布时间】:2019-12-10 23:35:28
【问题描述】:

我在 Unity 中有一个功能,在按下按钮时,会在屏幕上逐个字符地显示一行文本,并在最后一次按下按钮时移动到下一个场景。我有四行文本,但在最后一个按钮上,第四行会重复,然后再进入下一个场景。

    public void StartTypewriter()
    {
        start = true;
        сharIndex = 0;
        time = 0f;
    }

    public void SkipTypewriter(){
        сharIndex = ORIGINAL_TEXT.Length - 1;
    }

    public void NextString()
    {
        start = true;
        сharIndex = 0;
        time = 0f;
        if (index_of_string + 1 < MultiStrings.Length)
        { 
            index_of_string++;
        }
        else
        {
            SkipButton.onClick.AddListener(NextScene);
        }
        ORIGINAL_TEXT = MultiStrings[index_of_string];
    }

    public void NextScene()
    {
        Debug.LogWarning("Console Loading...");
        SceneManager.LoadScene("Scenes/Game");
    } 

当我在脑海中逻辑地运行该函数时,它应该像 if 检测到索引为 5 时那样工作,它唯一应该做的就是 NextScene 函数,但也许我的编号存在问题接上去?

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    好的,所以我发现了问题。事实证明,监听器是一键添加的,然后第二次单击将我们带到了现场。所以我摆脱了 NextScene 方法并重新设计了 NextString 函数,如下所示:

    public void NextString()
    {
        start = true;
        сharIndex = 0;
        time = 0f;
        if (index_of_string + 1 < MultiStrings.Length)
        {            
            index_of_string++;
        }
        else if (index_of_string + 1 == MultiStrings.Length)
        {
            Debug.LogWarning("Console Loading...");
            SceneManager.LoadScene("Game", LoadSceneMode.Single);
        }
        ORIGINAL_TEXT = MultiStrings[index_of_string];
    }
    

    现在最后一行文本以打字机样式显示,在下一个按钮上按下前一个场景关闭,新场景加载到它的位置。

    【讨论】:

      猜你喜欢
      • 2015-08-08
      • 2014-08-16
      • 2020-03-25
      • 2021-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多