Ejemplo n.º 1
0
    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");
            }
        });
    }
Ejemplo n.º 2
0
    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");
        }
    }