using System; using InfinityCode.uPano; using InfinityCode.uPano.Renderers; using UnityEngine; public class FadeCubeFaces : MonoBehaviour { [Range(0, 1)] public float progress; public Texture2D top; public Texture2D front; public Texture2D left; public Texture2D back; public Texture2D right; public Texture2D bottom; private CubeFacesPanoRenderer panoRenderer; private Material[] materials; private float _progress; private void OnRendererStart() { MeshRenderer mr = panoRenderer.meshGameObject.GetComponent(); materials = mr.sharedMaterials; materials[0].SetTexture("_SecondTexture", top); materials[1].SetTexture("_SecondTexture", front); materials[2].SetTexture("_SecondTexture", left); materials[3].SetTexture("_SecondTexture", back); materials[4].SetTexture("_SecondTexture", right); materials[5].SetTexture("_SecondTexture", bottom); UpdateProgress(); } private void Start() { _progress = progress; panoRenderer = GetComponent(); panoRenderer.OnStart += OnRendererStart; } private void Update() { if (Math.Abs(_progress - progress) > float.Epsilon) UpdateProgress(); } private void UpdateProgress() { _progress = progress; foreach (Material m in materials) m.SetFloat("_progress", progress); } }