免费国产网站_秋霞午夜一区二区三区视频_99热在线看_日韩精品久久一区二区_午夜看一级毛片_天天鲁在视频在线观看

  • 您的位置:首頁 > 新聞動態 > Unity3D

    UNITY3D繪制可調整行列數的網格

    2019/6/12??????點擊:

    直接上代碼@@


    //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("更新網格"))
            {
                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);
    
        ////// 網格大小
        ///[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();
    
            //計算Plane大小
            Vector2 size;
            size.x = _cellSize.x * _gridSize.x;
            size.y = _cellSize.y * _gridSize.y;
    
            //計算Plane一半大小
            Vector2 halfSize = size / 2;
    
            //計算頂點及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;//計算頂點Y軸
                uv.y = y * _cellSize.y / size.y;//計算頂點紋理坐標V
    
                for (int x = 0; x < _gridSize.x + 1; x++)
                {
                    vertice.x = x * _cellSize.x - halfSize.x;//計算頂點X軸
                    uv.x = x * _cellSize.x / size.x;//計算頂點紋理坐標U
    
                    vertices.Add(vertice);//添加到頂點數組
                    uvs.Add(uv);//添加到紋理坐標數組
                }
            }
    
            //頂點序列
            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];//頂點序列
            for (int y = 0; y < _gridSize.y; y++)
            {
                for (int x = 0; x < _gridSize.x; x++)
                {
                    //四邊形四個頂點
                    a = y * (_gridSize.x + 1) + x;//0
                    b = (y + 1) * (_gridSize.x + 1) + x;//1
                    c = b + 1;//2
                    d = a + 1;//3
    
                    //計算在數組中的起點序號
                    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);//設置頂點
            mesh.SetUVs(0, uvs);//設置UV
            mesh.SetIndices(indexs, MeshTopology.Triangles, 0);//設置頂點序列
            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
    }


    主站蜘蛛池模板: 色一情一乱一伦一区二区三区日本_欧美一区2区三区4区公司二百_久久亚洲热_国产91色在线综合亚洲_久久精品一区二区三区不卡_日本黄色电视 | 亚洲精品一卡2卡3卡四卡乱码_国产精品久久在线观看_性xxxxfreexxxxx欧美牲交_大地资源高清在线观看免费新浪_夜夜欢性恔免费视频_在线观看精品自拍私拍 | 精品国产乱码久久久久久竹菊影视_国产高清三区_免费看一级片_69视频免费_91精彩在线_亚洲伊人精品综合在合线 | 久久久久久久久毛片_日本一区二区视频免费观看_91精品国产99久久久_欧美一区二区在线免费观看_中国美女一区二区三区_免费人成A片在线观看免费 | 国产大片免费观看_欧美在线观看禁18_另类人妻校园卡通技巧_japanese一级淫片_91无毒不卡_亚洲欧洲日本mm | 免播放器在线观看av_精品久久999国产免费_国产棈品久久久久久久久久免费看_caoporn视频在线观看_麻豆一区二区在我观看_9九色桋品熟女内射 | 亚洲av毛片一区二二区三三区_91传媒91久久久_一本一道久久a久久综合精品图_无码国模大尺度视频在线观看_亚洲精品无码中文久久字幕_久草在线国产视频 | 在线免费观看日本欧美_性色av浪潮av色欲av_国产成人精品一区二区三区免费_少妇又紧又深又湿又爽视频_成人教育av在线_白嫩人妻娇喘欲仙欲死 | 亚洲国产精品VA在线观看黑人_亚洲国产欧美在线人成aaaa20_国产精品久久久久一区二区_国产无套码AⅤ在线观看在线播放_中文字幕久久久人伦_人妻少妇AV无码一区二区 | 青青草精品在线视频_国产熟女视频_日本久久久久久久久久久久_我看午夜视频_xx另类性欧美_精品国产一区二区三区高潮视 | 色蜂影视_女子初尝黑人巨嗷嗷叫_亚洲精品一区二区三区h_亚洲AV自慰白浆喷水网站少妇_大地资源中文二页在线观看_亚洲一区三区 | 久久精品九九_99视频在线免费观看_日本视频在线播放_欧美大奶网_日韩精品1区2区3区_婷婷综合色五月久丁香 | 国产精品美女一区二区视频_少妇高潮惨叫喷水正在播放_国产视频a_欧美一区二区精品在线_99精品无人区乱码在线观看_8888四色奇米在线观看 | 日本www.色_在线观看免费视频日韩_91av看片_亚洲午夜精品久久久_久久亚洲风情_亚洲色大成网站www尤物 | 国产精品日产无码av永久不卡_暖暖视频免费高清日本_国产一级特黄AAAA级婬片_日韩成人AV在线一区二区三区_岛国免费网站_日本免费福利视频 | 免费看一级一片_黄色二级视频_日本高清无吗v一区_夜夜爽妓女8888888视频_激情亚洲一区二区三区四区_欧洲尺码日本尺码特价 | 337p日本欧洲亚洲大胆色噜噜噜_99999精品视频_美女隐私视频黄www曰本_夜夜躁狠狠躁日日躁av麻豆_一级v片_欧美日韩免费中文字幕 | 中文不卡1区2区3区_在线免费观看不卡av_亚洲精品第一国产综合精品99_台湾佬久久_国产老熟女狂叫对白_METART极品人体 | 好大好深好猛好爽视频_日本一区二区三不卡_国精产品一区一区二区三区MBA_精品视频一二_国语自产少妇精品视频_国产社区在线综合不卡 | 国产精品乱码一区二区视频_国产精品视频播放_99热精品视_成人日韩在线观看_亚洲永久_第一色站 | 久久久久久免费免费精品软件_加勒比婷婷色综合久久_久久密月_国产一区二区美女视频_av制服丝袜诱惑天堂_日韩精品成人 | 久久精品大片_青草久久久国产线免观蜜芽_无码国产精品一区二区免费久久_久久中文字幕人妻熟AV女_福利视频一二区_日日夜夜操操操 | 999热精品_午夜香蕉视频_国产在线精品国自产拍影院_不卡视频观看_久久精品30_曰韩一级 | 国产在线精品一区二区不卡_国语对白清晰精彩_久久久99国产精品免费_日韩美毛片_亚洲av永久综合在线观看红杏_国产乱码日产乱码精品精 | 97AV麻豆蜜桃一区二区_黄色一级片av_日本视频中文字幕一区二区三区_91精品一区二区三区久久久久久_操人视频在线免费观看_男女啪啪高潮无遮挡免费 | 中文字幕无码人妻AAA片_97在线播放视频_久久久裸体视频_国产一区二区三区福利_韩国毛片_91九色在线 | 在线成人精品视频_99热在线精品免费_6699私人影院_日韩福利网站_亚洲av无码一区二区二三区我_久久久精品456亚洲影院 | 久久香蕉视频网站_久久久久亚洲精品视频_国产精品页_9色自拍_亚洲成年片_四虎永久在线精品免费无码 | 免费av国产_亚洲欧美在线免费观看_被老师叫到办公室跪着打手心_国内自拍偷第55页_6080yy午夜一二三区久久_国产a一级无码毛片一区二区三区 | 1级黄色录像_在线久热_久久午夜精品一区二区_91新人在线观看_免费观看国产视频_肉色丝袜足j视频国产 | 欧美成网站_日韩福利视频在线_图片小说校园激情都市_毛片免费看看_777久久_国产精品无码欧美日韩 | 日韩无一区二区_我爱我色成人网_国产成人无码VA在线观看_国产情人综合久久777777_综合激情在线_成人小视频免费 | 老司机午夜在线观看_日本成人在线一区_2019中文字幕在线播放_狠狠躁夜夜躁人人躁婷婷_欧美一区二区视频在线观看_亚洲国产18 | 欧美处交wwwvideos另类_久久精品网站免费观看_三级视频网_禁果av一区二区三区_理论黄色片_麻豆xfplay国产在线观看 | 欧美在线观看黄色_国产精品福利在线第一页_免费看日本一区二区_偷国内自拍视频在线观看_中国91av_午夜激情免费视频 | 欧美一级夜夜爽_豪放女大兵bd在线观看_产免观看AV大片的网站_国产AⅤ精品一区二区三区_亚洲中文字幕精品一区二区三区_亚洲午夜久久久久久久久久 | 好大好深好猛好爽视频_日本一区二区三不卡_国精产品一区一区二区三区MBA_精品视频一二_国语自产少妇精品视频_国产社区在线综合不卡 | 国产伦高清一区二区三区_四虎4hutv紧急入口_国产片av_99久久精品免费_日本va中文字幕_日韩久久久 | 国产乱人伦偷精品视频下_人妻丰满熟妇av无码区_天天操操夜夜操操_91精品国产一_欧美日韩免费在线视频_五月综合色婷婷在线观看 | 亚洲综合成色_国产成人AV在线免播放观看新_国产偷∨国产偷∨精品视频_欧美日韩亚洲色图_国产h在线看_国产日韩麻豆 | 日本一本二本视频_中文字幕第69页_日本护士xxxxhd少妇_久久国产视频一区二区_无毒三级网站_日韩片在线观看 |