2015-07-22 113 views
0

我使用按鈕加載場景並將參數傳遞給單例(從主菜單場景到遊戲場景)。代碼如下所示:Unity3d無法正確加載場景

public void OnPointerClick(PointerEventData data) 
    { 
     if (data.selectedObject != null) 
     { 
      string name = Tools.GetLast(data.selectedObject.name, 2); 
      selectedChapter = int.Parse(name); 
      DataHolder.holder.selectedChapter = selectedChapter; 
      Application.LoadLevel("Book_Scene"); 
     } 
    } 

我有不同的按鈕,它們會在圖書場景中加載不同的章節。一切都與第0章一致。其他任何和應用程序凍結。奇怪的是,書中的代碼似乎在運行,因爲特定章節的敘述開始了,但這似乎是唯一可行的。真正困擾我的是,當我在visual studio中調試它,並且按照斷點逐行執行一切正常工作時,場景會加載到適當的章節中,等等。此行爲沒有連接到Visual Studio或統一編輯器,因爲錯誤在我構建的Android構建中保留。我也沒有在控制檯中的錯誤。 Unity只是停止響應。

這是啓動方法在等上播放的聲音:

void Start() { 

     currentPageIndex = DataHolder.holder.selectedChapter; 
     flag = true; 
     if (currentPageIndex == 0) 
     { 
      for (int i = 0; i < pages.Length; i++) 
      { 
       CanvasGroup canGroup = pages[i].GetComponent<CanvasGroup>(); 
       canGroup.alpha = 0.0f; 
      } 
     } 
     else 
     { 
      if (Language.CurrentLanguage() == LanguageCode.EN) 
      { 
       //This line gets called since the sound starts playing even during the Editor freeze 
       AudioHelper.CreatePlayStackingSound(AudioManager.holder.voiceOversEnglish[currentPageIndex], 1f, "voiceOver"); 
       // This does not get output to the console. 
       Debug.Log("Scene " + Application.loadedLevelName + "is loaded after sound"); 
      } 
      if (Language.CurrentLanguage() == LanguageCode.AR) 
      { 
       AudioHelper.CreatePlayStackingSound(AudioManager.holder.voiceOversArabic[currentPageIndex], 1f, "voiceOver"); 
      } 
      Transform currPagetext = pages[currentPageIndex].transform.Search("TextPage" + currentPageIndex.ToString()); 
      currPagetext.gameObject.AddComponent<TextTyper>(); 
      initPage(currentPageIndex); 
     } 
     entrance = false; 
     done = true; 
     direction = true; 
     Debug.Log("Scene " + Application.loadedLevelName + "is loaded "); 
    } 

回答

0

問題解決了。有一個do {} while()循環由於某些浮點不精確而卡住了。我仍然不知道爲什麼在OnPointerClick()中添加斷點不會導致循環卡住。