PortalMesh.cs 879 Bytes
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

namespace Knife.Portal
{
    [RequireComponent(typeof(Renderer))]
    public class PortalMesh : MonoBehaviour
    {
        [SerializeField] private string viewTextureName = "_MainTex";
        [SerializeField] private PortalView view;
        [SerializeField] private int materialId;

        private Renderer attachedRenderer;

        private void Start()
        {
            attachedRenderer = GetComponent<Renderer>();
            view.OnRenderTextureChanged += OnRenderTextureChanged;
        }

        private void OnRenderTextureChanged()
        {
            var materials = attachedRenderer.materials;
            materials[materialId].SetTexture(viewTextureName, view.RenderTexture);
            attachedRenderer.materials = materials;
        }
    }
}