private IEnumerator loadStructurePrefab(StructureRenderParams param)
    {
        AssetRequest <GameObject> structureRequest;

        try
        {
            structureRequest = Content.LoadAsync(param.Definition.Prefab);
        }
        catch (Exception)
        {
            Log.LogErrorFormatted(this, "Could not load structure prefab {0} with prefab key {1}", param.Definition.Name, param.Definition.Prefab.Key);
            yield break;
        }
        if (structureRequest == null)
        {
            Log.LogErrorFormatted(this, "Something went wrong loading structure {0}.", param.Definition.Prefab);
            yield break;
        }
        yield return(structureRequest);

        GameObject structureGameObject = UnityEngine.Object.Instantiate(structureRequest.Asset);

        LightCullingMaskHelper.SetLayerIncludingChildren(structureGameObject.transform, "IconRender");
        yield return(loadStructureRenderData(param, structureGameObject));
    }
Example #2
0
    protected override IEnumerator processRequest(RenderParams renderParam)
    {
        ItemRenderParams param = renderParam as ItemRenderParams;

        if (penguinPreload != LoadingTriState.FAILURE)
        {
            Color bodyColor = (param.bodyColor != Color.clear) ? param.bodyColor : defaultBodyColor;
            penguin.transform.localPosition = new Vector3(10f, 0f, 0f);
            avatarModel.ClearAllEquipment();
            try
            {
                avatarModel.ApplyOutfit(createOutfit(param.equipment));
            }
            catch (Exception ex)
            {
                Log.LogErrorFormatted(this, "When applying an outfit to the avatar model an error occurred. Icon not rendered. Message: {0}", ex);
                yield break;
            }
            avatarModel.BeakColor  = bodyColor;
            avatarModel.BellyColor = bodyColor;
            avatarModel.BodyColor  = bodyColor;
            while (!avatarView.IsReady)
            {
                yield return(null);
            }
            LightCullingMaskHelper.SetLayerIncludingChildren(penguin.transform, "IconRender");
            modifyMaterials(bodyColor);
            yield return(renderToTexture(param));
        }
    }
 private IconRenderLightingRig()
 {
     IsReady       = false;
     cancelLoading = false;
     Light[] array = UnityEngine.Object.FindObjectsOfType <Light>();
     for (int i = 0; i < array.Length; i++)
     {
         LightCullingMaskHelper.DisableLayer(array[i], "IconRender");
     }
     Content.LoadAsync(onLightPrefabLoaded, LIGHTS_KEY);
 }
 private void onLightPrefabLoaded(string path, GameObject prefab)
 {
     if (!cancelLoading)
     {
         try
         {
             lightingRig      = UnityEngine.Object.Instantiate(prefab);
             lightingRig.name = "IconRender_LightingRig";
             Light[] componentsInChildren = lightingRig.GetComponentsInChildren <Light>();
             for (int i = 0; i < componentsInChildren.Length; i++)
             {
                 LightCullingMaskHelper.SetSingleLayer(componentsInChildren[i], "IconRender");
             }
             lightingRig.SetActive(value: true);
             IsReady = true;
         }
         catch (Exception)
         {
             Log.LogError(this, $"Could not instantiate icon render light asset {LIGHTS_KEY.Key}.");
         }
     }
 }