public void SetRenderableByReference( RenderableReference renderableReference, Quaternion addlRotation, Vector3 renderableOffset, Quaternion renderableRotation, PreferredScaleFunction scaleFunction, System.Func <bool> isStillValid) { if (resultRenderable != null) { Destroy(resultRenderable); } assetSearch.RequestRenderable(renderableReference, renderableObj => { if (renderableObj == null) { return; // Just to be safe.. } // Can be called async - so we could be gone already. if (this == null || this.gameObject == null) { return; } if (isStillValid()) { renderableObj.transform.SetParent(transform); renderableObj.transform.rotation = renderableRotation * addlRotation; renderableObj.transform.localPosition = renderableOffset; renderableObj.transform.localScale = scaleFunction(renderableObj); MakeLookLikeGhost(renderableObj); if (resultRenderable != null) { Destroy(resultRenderable); } resultRenderable = renderableObj; renderableObj.SetActive(true); } else { Destroy(renderableObj); Debug.Log("renderable callback out of date"); } }); }
public void RequestRenderable(RenderableReference reference, RenderableRequestEventHandler requestCallback) { if (reference.assetType == AssetType.Poly) { polySearchManager.RequestRenderable(reference.uri, requestCallback); } else if (reference.assetType == AssetType.Image) { gisSearchManager.RequestRenderable(reference.uri, requestCallback); } else if (reference.assetType == AssetType.Actor || reference.assetType == AssetType.AssetPack) { prefabSearchManager.RequestRenderable(reference.uri, requestCallback); } else { Debug.LogError("Request renderable did not know how to handle this asset type"); } }