【问题标题】:AR Animation issue in UnityUnity 中的 AR 动画问题
【发布时间】:2014-09-02 07:27:35
【问题描述】:

我正在尝试使用 unity 和 Metaio sdk 制作带有 AR 的动画。 我必须一步一步地播放那个动画 当我尝试以下脚本时,它在 ipad 和 android 移动设备上完美运行。

         Variable declaration
         ********************
               public GUIStyle buttonTextStyle;
               public Texture aTexture;
               private int curretnStep=1;
               GameObject gameObject;
               float SizeFactor;
               Texture2D texture;                  
               Animator CMTD42M ;
               bool isplaystarted = false;
               int[] videolengtharray = new int[6];
               int CurrentFrame=0;  
               bool islocked = false;

               *************
                  if (GUIUtilities.ButtonWithText (new Rect (Screen.width - 160,                            Screen.height - 100, 160, 100), "Next", null, buttonTextStyle)) {
            CMTD42M.speed=1;

            switch (curretnStep) {
            case 1:
                CMTD42M.Play ("First");
                break;
            case 2:
                CMTD42M.Play ("Second");
                break;
            case 3: 
                CMTD42M.Play ("Third");
                break;
            case 4:
                CMTD42M.Play ("Four");
                break;
            case 5:
                CMTD42M.Play ("Five");
                break;
            case 6:
                CMTD42M.Play ("Six");
                break;
            }
            curretnStep++;
            //isplaystarted = true;
        }

当我在 Epson Moverio(Glasses) 上运行此脚本时,它不接受按钮单击事件,所以我使用了 onMouseButtonDown 如下脚本:-

    if (Input.GetMouseButtonDown (0)) {

            if ((new Rect (Screen.width - 160, Screen.height - 100, 160, 100)).Contains (Event.current.mousePosition))
            {

                CMTD42M.speed=1;

                switch (curretnStep) {
                case 1:
                    CMTD42M.Play ("First");
                    break;
                case 2:
                    CMTD42M.Play ("Second");
                    break;
                case 3: 
                    CMTD42M.Play ("Third");
                    break;
                case 4:
                    CMTD42M.Play ("Four");
                    break;
                case 5:
                    CMTD42M.Play ("Five");
                    break;
                case 6:
                    CMTD42M.Play ("Six");
                    break;
                }
                curretnStep++;
            }

        }

动画没有逐步播放。 它以不同的顺序播放..

任何人都可以帮助我, 或者请指导我犯错的地方。 我是 Unity 和 AR 开发的新手

我得到了正确的鼠标事件。 是动画的问题还是鼠标点击的问题.. 请帮忙..

【问题讨论】:

    标签: unity3d augmented-reality metaio


    【解决方案1】:

    感谢 bl0z0, 我在 OnGUI() 函数中编写了这段代码。

    我终于解决了我的问题.. 我不明白背后的原因。

    问题在于可变当前步骤, 当我这样做时

             curretnStep++;
    

    它增加了 2,而不是 1。(仅在 Epson Moverio 中) 所以它没有采用正确的开关盒和动画播放错误。

    【讨论】:

      【解决方案2】:

      显然该设备(Epson Moverio)的帧速率比标准设备(手机,我猜那些眼镜在 Android 上运行)具有更高的帧速率,而且您在 Input.GetMouseButtonDown(0) 上两次得到正确的事实让我认为这实际上是一个错误(针对该平台)。

      我真的不推荐使用 OnGUI,因为它对于移动开发来说有点重,你可以做的可能是使用一个标志,当你播放动画时它会熄灭,只有当你播放的动画是完成的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-09-15
        • 2022-06-15
        • 2017-07-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-03
        • 1970-01-01
        相关资源
        最近更新 更多