private void CreateAsset(AssetsElement asset, Feature feature) { if (asset != null && asset.type != null) { GameObject go = new GameObject("Asset Entity"); go.transform.SetParent(feature.gameObject.transform); if (asset.transform != null) { Vector3 position = new Vector3(asset.transform.position.x, asset.transform.position.y, asset.transform.position.z); Quaternion rotation = Quaternion.Euler(asset.transform.rotation.x, asset.transform.rotation.y, asset.transform.rotation.z); Vector3 scale = new Vector3(asset.transform.scale.x, asset.transform.scale.y, asset.transform.scale.z); go.transform.localPosition = position; go.transform.localRotation = rotation; go.transform.localScale = scale; } if (asset.type.Equals("Prefab")) { PrefabEntity pe = go.AddComponent <PrefabEntity> (); pe.ID = asset.id; pe.source = asset.assetLink.href.Substring(1); //Remove the first char: # pe.InstantiatePrefab(pe.source); feature.prefabs.Add(pe); } else if (asset.type.Equals("Model")) { ModelEntity me = go.AddComponent <ModelEntity> (); me.ID = asset.id; me.ImportModel(asset.assetLink.href, callback: () => feature.models.Add(me)); } else { Debug.LogWarningFormat("[FeatureLoader] Asset type {0} is not implemented!", asset.type); } } }
void SetFeatureElement(string id, TrackableElement tra, string name) { creationFeature.id = id + "Feature"; creationFeature.name = id + "Feature"; creationFeature.description = ""; creationFeature.Trackables = new List <TrackableLink>(); TrackableLink trackableLink = new TrackableLink(); trackableLink.href = "#" + tra.id; creationFeature.Trackables.Add(trackableLink); creationFeature.Annotations = new List <AnnotationElement>(); creationFeature.anchors = new List <AnchorElement>(); creationFeature.Assets = new List <AssetsElement>(); AssetsElement assetsElement = new AssetsElement(); assetsElement.type = "Prefab"; assetsElement.assetLink = new AssetLink(); assetsElement.assetLink.href = "#" + name; creationFeature.Assets.Add(assetsElement); }