2015-07-22 114 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()中添加断点不会导致循环卡住。