﻿using InfinityCode.uPano.Renderers.Base;
using UnityEngine;

public class TwoTextureBlend : MonoBehaviour
{
    public PanoRenderer panoRenderer;
    public Texture secondTexture;
    [Range(0, 1)]
    public float alpha = 0;

    private Material material;
    private float _alpha = 0;

    private void Awake()
    {
        panoRenderer.OnStart += OnStartRenderer;
    }

    private void OnStartRenderer()
    {
        material = panoRenderer.meshGameObject.GetComponent<MeshRenderer>().sharedMaterial;
        material.SetTexture("_SecondTex", secondTexture);
        material.SetFloat("_Alpha", alpha);
    }

    public void SetAlpha(float value)
    {
        _alpha = alpha = Mathf.Clamp01(value);
        if (material != null) material.SetFloat("_Alpha", value);
    }

    private void Update()
    {
        if (alpha != _alpha) SetAlpha(alpha);
    }
}
