private void Update() { if (!isARReady && isDataSetReady && CameraDevice.Instance.IsActive() && TrackerManager.Instance != null) { isARReady = true; foreach (OneDataSetInfo oneDataSetInfo in oneABClassInfo.dataSetInfos) { AFSDK_DataSetHandle.LoadDataSetFromPath(PathTool.PersistentDataPath + "/" + oneDataSetInfo.TargetDataSet + ".xml"); List <string> targetInfo = new List <string>(oneDataSetInfo.TargetInfo.Keys); for (int i = 0; i < targetInfo.Count; i++) { if (oneDataSetInfo.TargetInfo[targetInfo[i]].oneResInfo.ResPath != "") { GameObject objPrefabs = resLoader.LoadSync <GameObject>(ResFromType.ABRes, oneDataSetInfo.TargetInfo[targetInfo[i]].oneResInfo.ResPath); Transform trans = AFSDK_DataSetHandle.ConfigTrackable(targetInfo[i], modelPre: objPrefabs); //生成模型 if (oneDataSetInfo.TargetInfo[targetInfo[i]].oneResInfo.isUseConfig) { trans.localEulerAngles = oneDataSetInfo.TargetInfo[targetInfo[i]].oneResInfo.ResRotation; trans.localScale = oneDataSetInfo.TargetInfo[targetInfo[i]].oneResInfo.ResScale; trans.localPosition = oneDataSetInfo.TargetInfo[targetInfo[i]].oneResInfo.ResPostion; } } } } } }
private void LoadSet() { if (ModelPre != null && CameraDevice.Instance.IsActive() && TrackerManager.Instance != null) { //传绝对路径 : 只需传.xml所在的绝对路径即可 //AFSDK_DataSetHandle.LoadDataSetFromPath(UnityPathTool.persistentDataPath + "/" + DatasetName + ".xml"); //此示例采用相对路径 : 直接导入dataset,直接传dataset名称即可 AFSDK_DataSetHandle.LoadDataSet("VuforiaMars_Images"); //注意命名空间 AFSDK_DataSetHandle.ConfigTrackable("Astronaut", "AFramework.ARSDK.AFSDK_DefaultTrackableHandle", ModelPre); } }