#unity3d #mobile
#unity3d #Мобильный
Вопрос:
Я разрабатываю 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. что это за сообщение об ошибке?
Ответ №1:
Ваша проблема связана с этой строкой:
UnityEditor.EditorApplication.isPlaying = false;
Вы не можете включить UnityEditor.dll в сборках. вы также должны убедиться, что вы не используете его в своих пространствах имен.
Или вы можете инкапсулировать его с помощью препроцессора
#if UNITY_EDITOR
UnityEditor.EditorApplication.isPlaying = false;
#endif