private IEnumerator LoadObjFileFromSource(ObjFileSourceData source) { using (var objBufferDic = new BufferDictionary()) { yield return(EasyARController.Instance.StartCoroutine(FileUtil.LoadFile(source.ObjPath, source.PathType, (Buffer buffer) => { objBufferDic.set(FileUtil.PathToUrl(source.ObjPath), buffer.Clone()); }))); foreach (var filePath in source.ExtraFilePaths) { yield return(EasyARController.Instance.StartCoroutine(FileUtil.LoadFile(filePath, source.PathType, (Buffer buffer) => { objBufferDic.set(FileUtil.PathToUrl(filePath), buffer.Clone()); }))); } using (var param = new ObjectTargetParameters()) { param.setBufferDictionary(objBufferDic); param.setObjPath(FileUtil.PathToUrl(source.ObjPath)); param.setName(source.Name); param.setScale(source.Scale); param.setUid(Guid.NewGuid().ToString()); param.setMeta(string.Empty); var targetOptional = ObjectTarget.createFromParameters(param); if (targetOptional.OnSome) { Target = targetOptional.Value; if (Target != null && TargetAvailable != null) { TargetAvailable(); } } else { throw new Exception("invalid parameter"); } } } UpdateTargetInTracker(); }
private void LoadObjFile(ObjFileSourceData source) { EasyARController.Instance.StartCoroutine(LoadObjFileFromSource(source)); }