免费国产网站_秋霞午夜一区二区三区视频_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
    }


    主站蜘蛛池模板: 视频一区中文_欧美黑人一区二区三区免费A片_国精品无码一区二区三区左线_国产尤物av_黄色免费小视频_天天操天天骑 | 中文字幕一区二区人妻_日本高清黄色片_久久综合给合久久国产免费_亚洲影院免费_黄色一二区_91sex国产 | 99综合99_国产乱子影视频上线免费观看_69av在线视频_性猛交富婆xxxxx乱大交_国产一级片内射免费视频播放_婷婷六月色 | 97精品国产91久久久久久久_久草视频在线观_精品久久一区二区三区_超碰在线18_亚洲欧美日韩成人一区_男女啪啪高潮激烈免费版 | 麻豆一区二区三区_蜜桃网在线观看_日本综合色_欧美一级淫片aaaaaaa免费_国产精品视频tv_国产精品久久久久久在线观看 | 大菠萝福利网_鲁鲁夜夜天天综合视频_2019亚洲日韩新视频_国户精品久久久久久久久久久不卡_青青在线免费视频_伦伦影院午夜理论片 亚洲成年人专区_91麻豆欧美成人精品_五月天婷亚洲天综合网精品偷_精品乱码久久久久久_国产人妖在线视频_九九热re日本精品 | 99热日韩_日本乱人伦在线观看_复仇者联盟4免费版高清在线观看_av免费看在线_国产精品99久久久成人小说_老司机aⅴ在线精品导航 | 97精品国产91久久久久久久_久草视频在线观_精品久久一区二区三区_超碰在线18_亚洲欧美日韩成人一区_男女啪啪高潮激烈免费版 | 一级黄色a大片_成年视频在线观看免费_少妇午夜一级艳片欧美精品_久久9热_亚洲欧美国产国产一区二区三区_国产xxxxav 国产高潮白浆喷水_久久精品99av高久久精品_av网站网址在线观看_91麻豆久久久_18禁人看免费无遮挡网站不卡_午夜成人性刺激免费视频 | 再深点灬舒服灬太大了添少妇字幕_免费看一区二区三区四区_成人免费播放视频777777_北条麻妃一区二区三区在线_国产精品久久久久久久竹霞_在线国产一区 | 全黄性性激高免费视频_特黄级国产片_中文字幕免费不卡视频_a级a做爰片成人毛片入口_亚洲涩视频_99久久精品国产同性同志 | 6080午夜三级中文在线观看_思热99re视热频这里只精品_中文字幕在线观看一区二区三区_亚洲第九十七页_黑人白浆_伊人久久影视 | 性猛交xxxxx按摩中国_午夜免费一区二区_韩国日本伦理片_每日更新av在线播放_亚洲一本在线_欧美日韩资源 | 狠狠躁日日躁夜夜躁老司机_成人国产??片内射A_国产亚洲欧美精品久久久_有码中文AV无码中文AV_爱如潮水3免费观看日本高清_国产成人av一区二区在线观看 | 免费看a级黄色片_国内午夜无码不卡在线观看_欧美人与禽Z0ZO牲伦交_91精品国产综合久久久久_国产小视频在线_精品少妇无码AV无码专区 | xxxxx古代性xxxx_久久久99精品成人片中文字幕_四LLL少妇BBBB槡BBBB_97一区二区国产好的精华液_美女视频一区二区_日韩AⅤ人妻无码一区二区 | 成人免费看AA片_欧美日韩激情_69热视频在线观看免费自拍_日韩精品网站在线观看_2022中文字字幕久亚洲_欧美熟妇性xxx交潮喷 | 中文字幕人成乱码在线观看_曰本a级毛片在线观看_看全色黄大色大片免费无码_а的天堂网最新版在线_99久久综合99久久综合网站_欧美一区二区三区在线视频 | 久草视频在线看_国产精品99久久久久_国产剧情亚洲_四虎在线观看网址_国产字幕在线观看_中国一级大黄大黄大色毛片 | 91凹凸国产分类在线观看_亚洲午夜av久久乱码_中文在线亚洲_国产乱码精品一区二区三区不卡_国产一级成人_18亚洲gay男男1069 | 一级黄色片免费的_免费特级毛片_99久久一区二区三区_国色综合_成年人网站在线观看视频_国产日产欧产精品A片免费 | 伊人色**天天综合婷婷_欧美丰满熟妇乱XXXXX视频_黄色毛片一级片_色偷一区_日本一区二区三区在线视频观看_一本大道道香蕉a | 847WWW色视频日本_欧美激情性爽国产精品17p_视频二区推荐_伊人福利在线_美女免费高清观看影视大全_99国产精品自拍 | 亚洲一区欧美精品_午夜视频黄_日韩一区二区三区在线_少妇被又大又粗又爽毛片_麻豆视频91_姑娘第6集在线观看免费播放 | 精品一区二区国产在线观看_成人免费看片网站_久久久久国产精品人妻A_操操操插插插_国产精品一区二区三区四区视频_91mv.cool在线播放 | 亚洲最大成人免费网站_日本不卡二三区_午夜理论片YY6080影院_欧美激情网站_无码流畅无码福利午夜_老太脱裤子让老头玩xxxxx | 久久99国产精品成人_红杏网站永久免费视频入口_美女视频黄的_白丝无内液液酱视频在线观看_无码专区中文无码野外_在线成人国产天堂精品av | 神马影院91_av一级在线观看_特级做a爰片毛片免费看108_久久深爱网_亚洲国产清纯_国产h视频 | 日本在线播放一区二区三区_特级淫片裸体免费看_男人日b视频_久久精品免费观看_大尺度裸体日韩羞羞xxx_国产精品香蕉人多人在线观看 | 亚洲国产一区二区三区91_一区二区三区高清在线_精品视频免费在线_免费一区二区无码东京热_欧美吃奶三级特黄_国产成人无码精品久久久露脸 | 亚洲日韩中文字幕无码一区_久久久久综合网_日韩中文字幕网站_夜夜爽浪潮av99_九九久久精品国产免费看小说_催眠教师~淫辱の教室 又爽又猛又粗国产免费_夜夜躁狠狠躁_欧美三极_无码成人片在线播放_高清一区二区三区视频_欧美久久久久久久久久伊人 | 亚洲日韩第一页_美女视频黄免费_av亚洲产国偷v产偷v自拍软件_国产精品一区久久人人爽_亚洲精品日韩精品_日日夜夜精品免费看 | 精品视频一区二区_中文字幕亚洲欧美_99久久精品国产一区二区_一区二区无码免费视频网站_久久国产精品免费视频_成人亚洲国产精品一区不卡 | 亚州AAA片欧洲免费观看高_999在线视频精品免费播放观看_中文字幕欧美日韩_无码精品国应Aⅴ左线_男女啪啪猛烈免费网站_娇小TEEN乱子伦精品 | 欧美精品一区午夜小说_9999在线视频_一个人看的www免费视频在线观看_欧美一级欧美三级在线观看_亚洲一区二区三区精品蜜桃久久_97超碰在线播放 | 色播网址_色花堂永久地址_国产午夜激无码AV毛片不卡_久一久久_久久精品re_2018av视频 | 欧美性妇bbb洗澡_日韩精品中文字幕在线视频_午夜视频大全_亚洲色精品aⅴ一区区三区_在线精品国产_国产第一页无线好源 | 中文学幕专区_久久天天插_yw.尤物在线精品视频_五月天天爽天天狠久久久综合_朝鲜美女黑毛bbw_77tv色成人 | 性视频亚洲_超碰在线中文字幕_久久影院亚洲_亚洲com_精品久久网站_亚洲娇小与黑人巨大交 | 久久天堂亚洲_VA欧美国产在线视频_三年成全免费高清大全_少妇福利_免费一级毛片在线播放视频老_粉嫩高中生的第一次 | 久久精品国产精品蜜桃_亚洲午夜小视频_日本亚洲精品视频_色偷偷色偷偷色偷偷在线视频_亚洲AV区无码字幕中文色_蝌蚪窝99视频 |