Skip to content
Snippets Groups Projects
PrismGenerator.cs 970 B
Newer Older
  • Learn to ignore specific revisions
  • using System.Linq;
    using UnityEngine;
    
    public class PrismGenerator : PlaneGenerator
    {
        #region InspectorVariables
        [Header("Plane values")]
        [SerializeField]
        private Vector3 _offset;
        public Vector3 Offset
        {
            get => _offset;
            set
            {
                _offset = value;
                GenerateShapeForAll();
            }
        }
        #endregion InspectorVariables
    
        #region Implementation
        protected override (Vector3[] vertices, int[] triangles) GenerateTopology()
        {
            (Vector3[] vertices, int[] triangles) plane = CreatePlane(_vertices);
            Vector3 center = CreateMesh(plane).bounds.center;
    
            return CreatePrism(
                    (plane.vertices.Select(v => v + _offset).ToArray()
                        , plane.triangles),
                    (plane.vertices.Select(v => v).ToArray()
                        , plane.triangles.Reverse().ToArray()),
                    null, null
                );
        }
        #endregion Implementation
    }