Пример #1
0
        void onOutput(AndroidJavaObject resultMap)
        {
            if (Mibo.onOutput != null)
            {
                List <OutputData> outputDataSets = new List <OutputData>();
                int count = resultMap.CallStatic <int>("getSize");
                for (int i = 0; i < count; ++i)
                {
                    AndroidJavaObject outputData = resultMap.CallStatic <AndroidJavaObject>("getOutputData", i);
                    outputDataSets.Add(new OutputData(
                                           outputData.Get <int>("id"),
                                           (float)outputData.Get <long>("processTime") * .001f,
                                           outputData.Get <string>("data")
                                           ));
                }
                Mibo.onOutput(outputDataSets.ToArray());
            }
            if (Mibo.onTrack != null)
            {
                List <TrackData> trackData = new List <TrackData>();
                int count = resultMap.CallStatic <int>("getSize");

                int index = 0;
                for (int i = 0; i < count; ++i)
                {
                    AndroidJavaObject outputData = resultMap.CallStatic <AndroidJavaObject>("getOutputData", i);
                    int t = outputData.Get <int>("id");

                    if (t == 4)
                    {
                        var tempTrackData = JsonUtility.FromJson <TrackData>(outputData.Get <string>("data"));

                        trackData.Add(tempTrackData);
                        index++;
                    }
                }

                if (index == 0)
                {
                    Mibo.onTrack(null);
                }
                else
                {
                    Mibo.onTrack(trackData.ToArray());
                }
            }

            if (Mibo.onFaceRecognize != null)
            {
                List <FaceRecognizeData> recognizeData = new List <FaceRecognizeData>();
                int count = resultMap.CallStatic <int>("getSize");

                Debug.Log("MiboUnity: count:" + count);
                for (int i = 0; i < count; ++i)
                {
                    AndroidJavaObject outputData = resultMap.CallStatic <AndroidJavaObject>("getOutputData", i);
                    int t = outputData.Get <int>("id");
                    Debug.Log("MiboUnity : t: " + t);
                    {
                        var tempRecognizeData = JsonUtility.FromJson <FaceRecognizeData>(outputData.Get <string>("data"));
                        recognizeData.Add(tempRecognizeData);
                        Debug.Log("MiboUnity : " + JsonUtility.ToJson(tempRecognizeData));
                    }
                }

                Mibo.onFaceRecognize(recognizeData.Count > 0 ? recognizeData.ToArray() : null);
            }
        }