2016-09-18 6 views
0

Когда я убиваю врага, я хочу идти на следующий уровень, но игра падает в Application.LoadLevel в моем устройстве Android. В редакторе единства все правильно и загружает следующий уровень, но в случае сбоя устройства Android. Как я могу это решить? Это мой код:Application.LoadLevel вызывает мою игру сбой на Android

using UnityEngine; 
using UnityEngine.UI; 
using System.Collections; 
using Invector; 

public class PuntosPistas_RA : MonoBehaviour { 

private GameObject Enemy4; 
private bool doOnce4; 
private GameObject Player; 


void Start() 
{ 
    Enemy4 = GameObject.FindGameObjectWithTag("Enemy4"); 
    Player = GameObject.FindGameObjectWithTag("Player"); 
    Player.GetComponent<PuntosPistas>().Score = PlayerPrefs.GetInt("Score"); 

} 
void Update() 
{ 

    if (Enemy4.GetComponent<v_AIController>() != null) { 
     if (Enemy4.GetComponent<v_AIController>().currentHealth <= 0 && doOnce4 == false) { 
      doOnce4 = true; 

      Application.LoadLevel("map"); 
      Debug.Log("To map"); 

     } 
    } 
} 
} 

Это ошибка, которая появляется на мониторе Android устройства, когда я проверить его:

09-28 14:04:24.343: A/libc(31857): Fatal signal 11 (SIGSEGV), code 1, fault addr 0x9c in tid 31879 (UnityMain) 
09-28 14:04:24.486: W/ActivityManager(847): Force finishing activity 1 com.asm.NETPOINTBOA/com.unity3d.player.UnityPlayerNativeActivity 
09-28 14:04:24.575: W/InputDispatcher(847): channel '35106e3 com.asm.NETPOINTBOA/com.unity3d.player.UnityPlayerNativeActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9 
09-28 14:04:24.575: E/InputDispatcher(847): channel '35106e3 com.asm.NETPOINTBOA/com.unity3d.player.UnityPlayerNativeActivity (server)' ~ Channel is unrecoverably broken and will be disposed! 
09-28 14:04:24.578: I/WindowState(847): WIN DEATH: Window{35106e3 u0 com.asm.NETPOINTBOA/com.unity3d.player.UnityPlayerNativeActivity} 
09-28 14:04:24.579: W/InputDispatcher(847): Attempted to unregister already unregistered input channel '35106e3 com.asm.NETPOINTBOA/com.unity3d.player.UnityPlayerNativeActivity (server)' 
+0

Как это получить? В консоли Unity ничего не отображается. Он работает нормально – Angelsm

+0

Спасибо! Я следил за учебником, и это журнал сбоев: 09-18 21: 08: 11.161: A/libc (32316): фатальный сигнал 11 (SIGSEGV), код 1, ошибка addr 0x0 in tid 32350 (UnityMain) 09-18 21: 08: 16.677: I/Хореограф (32316): пропустили 324 кадра! Приложение может делать слишком много работы над своей основной нитью. 09-18 21: 08: 16.678: W/AudioTrack (32316): releaseBuffer() трек 0xb85e9fc8 отключен из-за предыдущего недогрузки, перезапуск – Angelsm

+0

Есть ли сценарий в новой сцене, который выполняет большую работу или может даже застрять в бесконечной петле? – JeanLuc

ответ

1

Это может быть связано с Application.LoadLevel быть устаревший тип кода, это был заменен на SceneManager.LoadScene.

при использовании javascript add using UnityEngine.SceneManagement ;, не уверен, что это то же самое для C#.

UPDATE: Убедитесь, что в настройках сборки вы включили уровень карты и что она находится в правильном порядке. Это объясняет, почему он работает в редакторе, а не когда вы создаете и запускаете копию. В основном, когда вы его строите, он не знает, куда идти.

+0

еще лучше .. https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.LoadSceneAsync.html поскольку похоже, что авария может быть спасена путем перехода Async ... –

+0

с использованием Application.LoadLevel должно исправить ошибку, но всегда полезно иметь резервный план, например, используя версию Async. – Phillipv20

+0

Я заменил его, но он снова сработает :( – Angelsm

Смежные вопросы