protected virtual void OnWillRenderObject() { if (spriteRenderer == null) spriteRenderer = GetComponent<SpriteRenderer>(); UpdateSourceMaterial(); DestroyMaterialIfSettingsDiffer(); if (SourceMaterial != null) { // Clone new material? if (clonedMaterial == null) { clonedMaterial = D2D_Helper.Clone(SourceMaterial, false); } else { clonedMaterial.CopyPropertiesFromMaterial(SourceMaterial); } clonedMaterial.hideFlags = HideFlags.DontSave; clonedMaterial.SetTexture("_MainTex", MainTex); clonedMaterial.SetTexture("_AlphaTex", AlphaTex); clonedMaterial.SetFloat("_Sharpness", Sharpness); clonedMaterial.hideFlags = HideFlags.None; } if (spriteRenderer.sharedMaterial != clonedMaterial) { spriteRenderer.sharedMaterial = clonedMaterial; } }
protected override void OnDuplicate() { base.OnDuplicate(); if (spriteRenderer == null) spriteRenderer = GetComponent<SpriteRenderer>(); if (clonedMaterial == spriteRenderer.sharedMaterial) { clonedMaterial = D2D_Helper.Clone(clonedMaterial); spriteRenderer.sharedMaterial = clonedMaterial; } }
protected virtual void OnDuplicate() { alphaTex = D2D_Helper.Clone(alphaTex, true); }