最新国产在线视频_一色一伦一区二区三区的区别_欧美成人影院亚洲综合图_国产亚洲一区精品_大胆欧美熟妇xxbbwwbw高潮了_久久午夜无码鲁丝片

  • UNITY3D繪制可調(diào)整行列數(shù)的網(wǎng)格

    2019/6/12??????點(diǎn)擊:

    直接上代碼@@


    //PlaneBuilder.cs
    
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    #region Editor
    
    #if UNITY_EDITOR
    
    using UnityEditor;
    
    [CustomEditor(typeof(PlaneBuilder))]
    public class PlaneBuilderEditor : Editor
    {
        public override void OnInspectorGUI()
        {
            PlaneBuilder builder = (PlaneBuilder)target;
    
            EditorGUI.BeginChangeCheck();
    
            base.OnInspectorGUI();
    
            if (EditorGUI.EndChangeCheck())
            {
                builder.UpdateMesh();
            }
    
            if (GUILayout.Button("更新網(wǎng)格"))
            {
                builder.UpdateMesh();
            }
        }
    }
    
    #endif
    
    #endregion Editor
    
    [RequireComponent(typeof(MeshFilter), typeof(MeshRenderer))]
    public class PlaneBuilder : MonoBehaviour
    {
        [SerializeField]
        private MeshFilter _meshFilter;
    
        [SerializeField]
        private MeshRenderer _meshRenderer;
    
        ////// 單元格大小
        ///[SerializeField]
        private Vector2 _cellSize = new Vector2(1, 1);
    
        ////// 網(wǎng)格大小
        ///[SerializeField]
        private Vector2Int _gridSize = new Vector2Int(2, 2);
    
        public MeshRenderer MeshRenderer
        {
            get
            {
                return _meshRenderer;
            }
        }
    
        public MeshFilter MeshFilter
        {
            get
            {
                return _meshFilter;
            }
        }
    
        private void Awake()
        {
            _meshFilter = GetComponent();
            _meshRenderer = GetComponent();
            UpdateMesh();
        }
    
        public void UpdateMesh()
        {
            Mesh mesh = new Mesh();
    
            //計(jì)算Plane大小
            Vector2 size;
            size.x = _cellSize.x * _gridSize.x;
            size.y = _cellSize.y * _gridSize.y;
    
            //計(jì)算Plane一半大小
            Vector2 halfSize = size / 2;
    
            //計(jì)算頂點(diǎn)及UV
            Listvertices = new List();
            Listuvs = new List();
    
            Vector3 vertice = Vector3.zero;
            Vector2 uv = Vector3.zero;
    
            for (int y = 0; y < _gridSize.y + 1; y++)
            {
                vertice.z = y * _cellSize.y - halfSize.y;//計(jì)算頂點(diǎn)Y軸
                uv.y = y * _cellSize.y / size.y;//計(jì)算頂點(diǎn)紋理坐標(biāo)V
    
                for (int x = 0; x < _gridSize.x + 1; x++)
                {
                    vertice.x = x * _cellSize.x - halfSize.x;//計(jì)算頂點(diǎn)X軸
                    uv.x = x * _cellSize.x / size.x;//計(jì)算頂點(diǎn)紋理坐標(biāo)U
    
                    vertices.Add(vertice);//添加到頂點(diǎn)數(shù)組
                    uvs.Add(uv);//添加到紋理坐標(biāo)數(shù)組
                }
            }
    
            //頂點(diǎn)序列
            int a = 0;
            int b = 0;
            int c = 0;
            int d = 0;
            int startIndex = 0;
            int[] indexs = new int[_gridSize.x * _gridSize.y * 2 * 3];//頂點(diǎn)序列
            for (int y = 0; y < _gridSize.y; y++)
            {
                for (int x = 0; x < _gridSize.x; x++)
                {
                    //四邊形四個(gè)頂點(diǎn)
                    a = y * (_gridSize.x + 1) + x;//0
                    b = (y + 1) * (_gridSize.x + 1) + x;//1
                    c = b + 1;//2
                    d = a + 1;//3
    
                    //計(jì)算在數(shù)組中的起點(diǎn)序號(hào)
                    startIndex = y * _gridSize.x * 2 * 3 + x * 2 * 3;
    
                    //左上三角形
                    indexs[startIndex] = a;//0
                    indexs[startIndex + 1] = b;//1
                    indexs[startIndex + 2] = c;//2
    
                    //右下三角形
                    indexs[startIndex + 3] = c;//2
                    indexs[startIndex + 4] = d;//3
                    indexs[startIndex + 5] = a;//0
                }
            }
    
            //
            mesh.SetVertices(vertices);//設(shè)置頂點(diǎn)
            mesh.SetUVs(0, uvs);//設(shè)置UV
            mesh.SetIndices(indexs, MeshTopology.Triangles, 0);//設(shè)置頂點(diǎn)序列
            mesh.RecalculateNormals();
            mesh.RecalculateBounds();
            mesh.RecalculateTangents();
    
            _meshFilter.mesh = mesh;
        }
    
    #if UNITY_EDITOR
    
        private void OnValidate()
        {
            if (null == _meshFilter)
            {
                _meshFilter = GetComponent();
            }
            if (null == _meshRenderer)
            {
                _meshRenderer = GetComponent();
                if (null == _meshRenderer.sharedMaterial)
                {
                    _meshRenderer.sharedMaterial = new Material(Shader.Find("Standard"));
                }
            }
        }
    
    #endif
    }


    主站蜘蛛池模板: 久草在线观看首页 | 亚洲欧美日韩综合一区在线观看 | 麻豆系列| 中文字幕无码一区二区免费 | 无码人妻黑人中文字幕 | 精品国产福利一区二区 | 久久综合噜噜激激的五月天 | 一区二区视频传媒有限公司 | 亚洲1区1区3区4区产品乱码芒果 | 最好看的2018中文字幕免费视频 | 一个人看的免费观看视频www | 厨房里边做饭边啪啪爱爱 | 国产一级a爱片在线观看视频 | np群乱肉欧美精品大黄毛片 | 成人av片在线观看免费 | 今日av在线 | 91视频麻豆 | 亚洲91在线 | 失禁大喷潮在线播放 | 国产色无码精品视频国产 | 在线观看免费视频资源 | 日韩免费不卡视频 | 女人内谢aaaa免费视频 | 美女下部隐私(不遮挡) | 亚洲综合色婷婷七月丁香 | 国语自产精品视频在线区 | 高h尿在里面bl | 一级毛片老太婆 | 亚洲欧美一区二区三区在线观看 | 日本丰满少妇高潮呻吟 | 国产日产欧产精品精品推荐免费 | 人人妻人人爽人人做夜欢视频九色 | 在线播放国产一区二区三区 | 久久中文字幕无码A片不卡男同 | 欧美性白人极品hd | 免费观看一级黄色片 | 国产精品99久久99久久久不卡 | 影音先锋每日AV色资源站 | 初高中生啪啪网站汐汐最迷人 | 免费无码又爽又刺激高潮 | 国产99久久久国产精品~~牛 |