Скрипт Unity 2018 для прокрутки панели не будет работать, если я пойду на сцену игры до сцены кредитов - PullRequest
0 голосов
/ 08 июля 2019

Я работаю над игрой в Unity3D (что еще я буду делать), и до сих пор у меня есть сцена главного меню, сцена игры и сценарий кредитов.

Есть скрипт, который я сделал (показанный ниже), который заставит панель с именами прокручиваться вверх, которая отлично работает, если я выберу сцену кредитов в главном меню. Но здесь есть проблема. Если я сначала захожу в игру, а затем возвращаюсь в главное меню и выбираю кредиты, то ничего не происходит. Есть идеи?

using UnityEngine;
using System.Collections;

public class ScrollCredits : MonoBehaviour
{
    public GameObject Canvas;
    public int speed = 1;
    public string level;

private void Start()
{
    Canvas.transform.Translate(Vector3.up * Time.deltaTime * speed);
    StartCoroutine(waitFor());
}
private void Update()
{
}
IEnumerator waitFor()
{
    yield return new WaitForSeconds (69);
    Application.LoadLevel(level);
}
}

1 Ответ

0 голосов
/ 10 июля 2019

Вы переместили свой переводчик в Start(), он не будет работать таким образом. Только StartCoroutine должно быть в Start(), например:

public GameObject canvas;
public float speed = 0.1f;
public string sceneName;
public float timer;

private void Start()
{
    StartCoroutine(WaitFor());
}

private void Update()
{
    canvas.transform.Translate(Vector3.right * Time.deltaTime * speed);
}

IEnumerator WaitFor()
{
    yield return new WaitForSeconds (timer);
    SceneManager.LoadScene(sceneName);
}

Примечание: я изменил LoadLevel на SceneManager.LoadScene, потому что он устарел и будет удален в будущем.

...