Вопрос о Unity Code (можно собрать для ПК, но не для мобильных устройств) - PullRequest
1 голос
/ 04 апреля 2019

platformer

Я разрабатываю 2D-платформер для Unity, который хочу развернуть на своем мобильном телефоне.

Однако, когда я пытаюсь собрать и запустить на моем устройстве Android,Я получаю сообщение об ошибке.

Это мой код:

public class PlayerControl : MonoBehaviour
{
    private Rigidbody2D rb;

    // Start is called before the first frame update
    void Start()
    {
        rb = GetComponent<Rigidbody2D>();
    }

    // Update is called once per frame
    void Update()
    {
        rb.velocity = new Vector2(5, rb.velocity.y);
        if (Input.GetMouseButtonDown(0)){
            rb.velocity = new Vector2(5, 8);
        }
    }

    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.gameObject.name == "Win")
        {
            UnityEditor.EditorApplication.isPlaying = false;
            Application.Quit();
        }
        if (collision.gameObject.name == "Lose")
        {
            SceneManager.LoadScene(0);
        }
    }
}

До того, как я добавил свой OnTriggerEnter2D (), игра могла нормально работать и работать на моем Android.После его добавления произошли ошибки.

Я подозреваю, что это связано с, возможно, EditorApplication.isPlaying = false?И, может быть, также SceneManager.LoadScene ()?

Есть ли альтернативные коды, которые я могу использовать?

Я хочу, чтобы игра закрывалась, когда я выигрывал, и "перезапускалась", когда я проигрывал.

1 Ответ

2 голосов
/ 04 апреля 2019

Ваша проблема связана с этой строкой:

    UnityEditor.EditorApplication.isPlaying = false;

Вы не можете включить UnityEditor.dll в сборки.вы также должны убедиться, что вы не используете его в своих пространствах имен.

Или вы можете инкапсулировать его с препроцессором

#if UNITY_EDITOR
        UnityEditor.EditorApplication.isPlaying = false;
#endif
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...