Unity3D在运行时更改纹理不适用于Android版本

时间:2016-08-20 22:53:28

标签: c# android unity3d texture2d

我正在为Unity 5上的Android平板电脑制作数字图书。我正在使用资产商店中的这个Page Curl插件。

我有3个主要的平面:LeftPage,RightPage和TurningPage,我保留了一个索引,我正在寻找每个页面的页面,这样我就可以管理相应的纹理。当我点击其中一个左页或右页时,翻页动画开始播放,当它结束时,我更新索引值和相应的纹理。

它在Unity Editor中运行完美,并且在平板电脑中与Unity Remote完美配合,但是当我运行已安装的apk时,翻页始终显示在开始时分配的纹理。左右页面工作正常。

打印指定的纹理名称( pageFront.mainTexture.name )我得到了与页面索引值相同的正确纹理,但TurningPage一直显示初始值( indPage = 0 )纹理。

所有纹理都在Texture2D数组的编辑器上进行了对齐。

    void Update()
{
     ...

     // If click is in one of four defined areas.
     if (mouseX > 970 && mouseX < 1024 && canFlipFwd)
     {
          if (mouseY > 250 && mouseY < 710)
          {
               clickCase = 1; // Play animation 1. 
               changePageFwd();
          }
          else if (mouseY > 50 && mouseY <= 250)
          {
               clickCase = 2; // Play animation 2.
               changePageFwd();
          }
     }
     else
     {
          ...
     }
}

void PageFlipOver(bool pageTurned)
{
     if (pageTurned)
     {
          // Update page index.
          indRight += 2;
          indPage += 2;

          if (indLeft + 2 < pages.Length)
          {
               indLeft += 2;
               leftBackground.mainTexture = pages[indLeft];

               if (indLeft + 2 < pages.Length)
                    pageBack.mainTexture = pages[indLeft + 2];
               else
                    pageBack.mainTexture = pages[indLeft];
          }

          if (!canFlipBkw)
                canFlipBkw = true;
     }

     canFlip = true;
}

void changePageFwd()
{
     if (indRight < pages.Length)
     {
          rightBackground.mainTexture = pages[indRight];
     }
     else
     {
          rightBackground.mainTexture = alpha;
          canFlipFwd = false;
     }

     if (indPage < pages.Length)
          pageFront.mainTexture = pages[indPage];
}

欢迎任何帮助,我一直坚持这两个弱点,我找不到什么错误。

0 个答案:

没有答案