public void Restore(IRestoreData restoreData) { var data = restoreData as PostProcessingRestoreData; // Materials must be RestorableMaterial MaterialFactory factory = MaterialPool.Ensure(gameObject).factory; layers.Clear(); foreach (var materialRestoreData in data.layersData) { var material = RestorableMaterial.RestoreMaterialFromData(materialRestoreData, factory); layers.Add(material); } }
private void Awake() { renderer = GetComponent <Renderer>(); if (renderer == null) { var textureChanger = GetComponent <GameOverlayTextureChanger>(); if (textureChanger != null) { renderer = textureChanger.actualImageObject.GetComponent <Renderer>(); } } image = GetComponent <Image>(); // Create MaterialPool to keep an instance of defaultMaterial MaterialPool.Ensure(gameObject); renderQueue = GetRenderQueue(); }