예제 #1
0
        public static DataManager[] GetArrayWithQuerySync(Query query, QueryKind queryKind)
        {
            if (javaUnityApplicasaDataManager == null)
            {
                javaUnityApplicasaDataManager = new AndroidJavaClass("com.applicasaunity.Unity.ApplicasaDataManager");
            }

            AndroidJavaObject[] bigArray = javaUnityApplicasaDataManager.CallStatic <AndroidJavaObject[]>("ApplicasaDataManagerGetArrayWithQuerySync", query.innerQueryJavaObject, (int)queryKind);

            DataManager[] dataManagerInner = null;
            for (int i = 0; i < bigArray.Length; i++)
            {
                AndroidJavaObject tempJavaObject = bigArray[i];

                AndroidJavaObject[] InnerArray      = AndroidJNIHelper.ConvertFromJNIArray <AndroidJavaObject[]>(tempJavaObject.GetRawObject());
                DataManager[]       dataManagertemp = new DataManager[InnerArray.Length];
                for (int j = 0; j < InnerArray.Length; j++)
                {
                    AndroidJavaObject tempObj = InnerArray[j];
                    dataManagertemp[j] = new DataManager(tempObj.GetRawObject(), tempObj);
                }
                if (dataManagerInner == null)
                {
                    dataManagerInner = dataManagertemp;
                }
                else
                {
                    DataManager[] firstOne = dataManagerInner;
                    dataManagerInner = new DataManager[firstOne.Length + dataManagertemp.Length];
                    firstOne.CopyTo(dataManagerInner, 0);
                    dataManagertemp.CopyTo(dataManagerInner, firstOne.Length);
                }
            }
            return(dataManagerInner);
        }
예제 #2
0
        public static IEnumerator GetArrayWithQuerySyncIEnumerator(Query query, QueryKind queryKind)
        {
            if(javaUnityApplicasaDataManager==null)
                javaUnityApplicasaDataManager = new AndroidJavaClass("com.applicasaunity.Unity.ApplicasaDataManager");

                AndroidJavaObject[] bigArray = javaUnityApplicasaDataManager.CallStatic<AndroidJavaObject[]>("ApplicasaDataManagerGetArrayWithQuerySync", query.innerQueryJavaObject, (int)queryKind);

            DataManager[] dataManagerInner= null;;
            for (int i = 0;i < bigArray.Length;i++)
            {
                AndroidJavaObject tempJavaObject = bigArray[i];

                AndroidJavaObject[] InnerArray = AndroidJNIHelper.ConvertFromJNIArray<AndroidJavaObject[]>(tempJavaObject.GetRawObject());
                DataManager[] dataManagertemp = new DataManager[InnerArray.Length];
                for (int j = 0;j < InnerArray.Length;j++)
                {
                    AndroidJavaObject tempObj = InnerArray[j];
                    dataManagertemp[j] = new DataManager(tempObj.GetRawObject(),tempObj);
                }
                if (dataManagerInner == null)
                    dataManagerInner = dataManagertemp;
                else{
                   DataManager[] firstOne = dataManagerInner;
                    dataManagerInner = new DataManager[firstOne.Length+dataManagertemp.Length];
                    firstOne.CopyTo(dataManagerInner,0);
                    dataManagertemp.CopyTo(dataManagerInner,firstOne.Length);
                }
                yield return new WaitForSeconds(0.2f);
            }
            finalDataManager = dataManagerInner;
        }