using UnityEngine; using System; #if UNITY_EDITOR using UnityEditor; #endif namespace Polybrush { /// /// Workaround for bug in `MeshRenderer.additionalVertexStreams`. /// Namely, the mesh is not persistent in the editor and needs to be "refreshed" constantly. /// [ExecuteInEditMode] [Obsolete()] public class z_AdditionalVertexStreams : MonoBehaviour { /// /// The Mesh set as additional vertex stream /// public Mesh m_AdditionalVertexStreamMesh = null; MeshRenderer _meshRenderer; MeshRenderer meshRenderer { get { if(_meshRenderer == null) _meshRenderer = gameObject.GetComponent(); return _meshRenderer; } } void Start() { SetAdditionalVertexStreamsMesh(m_AdditionalVertexStreamMesh); } /// /// Setting the additional vertex streams /// /// The Mesh to use for additionalVertexStreams public void SetAdditionalVertexStreamsMesh(Mesh mesh) { if (meshRenderer != null) { this.m_AdditionalVertexStreamMesh = mesh; meshRenderer.additionalVertexStreams = mesh; } } #if UNITY_EDITOR void Update() { if(meshRenderer == null || m_AdditionalVertexStreamMesh == null || EditorApplication.isPlayingOrWillChangePlaymode) return; meshRenderer.additionalVertexStreams = m_AdditionalVertexStreamMesh; } #endif } }