使用Unity或Java而不使用C ++在Vuforia中进行图像检测

时间:2016-02-19 10:39:33

标签: android unity3d vuforia

我必须在检测到图像时给Toast留言。 哪种方法最简单? 使用Unity或只使用没有本机调用的JAVA?

我已尝试过developer.vuforia.com网站上提供的所有方法

我试过了 1.如何扩展Unity Android活动 2.如何在Unity Apps中使用Android插件 3.如何通过Unity为Android添加视图 4.如何在目标检测和打开网站上显示Toast

但没有任何作用..请指导我或发送工作样本的链接

2 个答案:

答案 0 :(得分:2)

我非常感谢你的努力。但是有一种非常简单的方法可以做到这一点:

  • 试试这个脚本

    使用UnityEngine;     使用System.Collections;

    public class ShowToast : MonoBehaviour {
    
        // Use this for initialization
        void Start () {
            MyShowToastMethod ();
    
        }
    
        string toastString;
        AndroidJavaObject currentActivity;
    
        public void MyShowToastMethod ()
        {
            if (Application.platform == RuntimePlatform.Android) {
                showToastOnUiThread ("It Worked!");
            }
        }
    
        void showToastOnUiThread(string toastString){
            AndroidJavaClass UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
    
            currentActivity = UnityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
            this.toastString = toastString;
    
            currentActivity.Call ("runOnUiThread", new AndroidJavaRunnable (showToast));
        }
    
        void showToast(){
            Debug.Log ("Running on UI thread");
            AndroidJavaObject context = currentActivity.Call<AndroidJavaObject>("getApplicationContext");
            AndroidJavaClass Toast = new AndroidJavaClass("android.widget.Toast");
            AndroidJavaObject javaString=new AndroidJavaObject("java.lang.String",toastString);
            AndroidJavaObject toast = Toast.CallStatic<AndroidJavaObject> ("makeText", context, javaString, Toast.GetStatic<int>("LENGTH_SHORT"));
            toast.Call ("show");
        }
    
    }
    

答案 1 :(得分:0)

我正在使用统一扩展但我非常确定核心编码基因是相同的。图像目标使用名为DefaultTrackableEventHandler的类,并且有OnTrackingFound()函数。一旦检测到图像就会调用它,这样您就可以在那里实现消息!无论如何我就是这样做的。祝你好运