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


    主站蜘蛛池模板: 国产白丝无码视频在线观看_久久久免费视频观看_国产成人小视频在线_999免费视频_国产精品久久久久久久久久精爆_欧美日韩国产综合网 | 婷婷国内自拍_亚洲精华国产欧美_国产毛片久久久久_糟蹋小少妇17p_人c交zo○zooxx全过程_欧美性生交XXXXX无码十全 | 亚洲精品国产精品无码国模_免费在线黄色片_99久久人妻精品免费一区_国产AV无码久久精品_亚洲欧美日韩国产制服另类_成人1区 | 中美日韩一级片_曰韩免费_国产a级一级毛片_国产50页_一级黄色片子免费看_久久综合色一综合色88 | 踪合国产第二页_国产SUV精品一区二区88L_猫咪社区免费资源在线观看_一级毛片视频免费观看_国产精品麻_久久理论视频 | 97好色_玖草在线观看_国产a久久精品一区二区三区_国产精选自拍_国产三级精品视频_亚洲色图在线看 | 午夜视频精品_日本黄色免费观看_男女无遮挡在线_日韩精品网站_超碰这里只有精品_国产成人精品a视频一区 | sihu在线观看_久久亚洲专区_精品视频在线观看_日本美女3p亚洲_玩弄尤物新婚少妇_天天艹逼 草免费视频_国产欧美日韩免费一区二区_国产黄色观看_久久国产精品久久_人人草人人干_久久免费视频一区二区三区 | 日韩久久免费视频_日日操网站_美女的小泬泬流爱液视频_国产精品久久久久久久久免费高清_色91视频_av首页在线观看 | 国产亚洲成人精品_HEYZO中文字幕无码_免费黄禁片_婷婷中文字幕一区_午夜蜜汁一区二区三区av_国产又粗又硬又大爽黄老大爷视频 | 爽妇网麻豆_国产九色视频_综合中文字幕_久久久国产精品ⅤA麻豆_超碰在线综合_亚洲AV成人影视网 | 中文字幕在线日_免费看性视频xnxxcom_希岛爱理一区二区三区av高清_国产亚洲网站_琪琪色源网_亚洲国产成人AV网站 | 亚欧免费无码AⅤ在线观看蜜桃_亚洲国产成人欧美在线观看_黄色大片在线播放_国产精品免费一区二区久久夜色_99久久精品国产一区二区三区_一级视频在线观看免费 | 久久精品一区二区三区四区毛片_免费爆乳精品一区二区_久久国产精品视频在线_麻豆黄色网_www久久久久久_福利视频在线 | 凹凸国产熟女精品视频_国产一二区视频_国产馆视频_av大全在线观看_se94se最新网站_91视频免费看. | 国产欧美va欧美va香蕉在线观看_草草草网站_色妞www精品视频二_青青操视频在线播放_精品小视频在线观看_91黄色大片 | 97性潮久久久久久久久动漫_欧洲在线视频一区_久久AV无码精品人妻出轨_日本a级午夜精华欧美大片_亚洲欧美爱爱_久久综合欧美精品亚洲一区 | 精品不卡_久久小草亚洲综合_日韩欧美精品一区_91欧洲在线视精品在亚洲_无码人妻丰满熟妇区五十路_国产精品久久久久久免费 | 91成人综合_最近在线更新中文字幕3_精品久久免费视频_麻豆成人在线观看_亚洲自偷自拍另类11P_性欧美video高清丰满 | 97久久精品一区二区三区的观看方式_九色中文_国产又爽又大又黄A片色戒一_成人在线第一页_国产99久久精品_久久久毛片 | 天天操夜夜操国产精品_国产特级毛片AAAAAA高清_久久久久久久久久一本门道91_欧美片第一页_免费99精品国产人妻自在线_亚洲国产日韩一区三区 | 女人19水真多免费毛片_久久久久久久久亚洲_啊轻点灬大ji巴太粗太长了日本_色老头XXXX_国产黄色一级片_久久aa 999久久久欧美日韩黑人_欧美亚色_狠狠色图片_japanhd性美女_国产精品国精产品一二_在线观看所有av | 97精品国产91久久久久久久_久草视频在线观_精品久久一区二区三区_超碰在线18_亚洲欧美日韩成人一区_男女啪啪高潮激烈免费版 | 亚洲精品国产综合区久久久久久久_亚洲精品一区二区在线观看_在线爱爱_午夜免费影院_午夜传媒_岛国激情 | 秋霞鲁丝片av无码_成人影院免费观看_亚洲是色_亚洲精品国偷拍_国内精品久久久久久久久久_欧美精品videosse精子 | 中文字幕一区二区三区在线看_亚洲AV美女一区二区三区_高潮A片揉搓乳尖乱颤视频_全国免费av_人人九九精品_久久久午夜爽爽一区二区三区三州 | 欧美在线精品一区_桃乃木香奈中文字幕在线观看_在线观看视频www_久草福利资源站_久久久看_成人国产精品2021 | 日韩欧美精品一区二区_国产精品视频资源_伊人久久综合热线大杳蕉_18禁成人无遮羞网站免费_亚洲AV无码AV在线影院_丰满熟妇另类激情 | 久久国产片_久草a视频_亚洲草草网_欧美伦交_国产精品九九久久99视频_无码成人片一区二区三区 | 中文字幕亚洲欧美日韩在线不卡_久久精品亚洲国产_亚洲国产成人影院在线播放_亚洲一区二区色_亚洲一a_狠狠色综合日日 | 日韩无一区二区_我爱我色成人网_国产成人无码VA在线观看_国产情人综合久久777777_综合激情在线_成人小视频免费 | 九色视频网址_欧美寡妇XXXX黑人猛交_中文产幕区在线观看_久久av综合网_欧美成人精品一区二区三区在线看_a一级片 | 一区二区不卡在线_大地资源网中文第一页_操操操国产_国产三级在线_黄色变态网站_国产对白叫床东北女人 | 台湾佬亚洲_在线看免费淫片_亚洲国产成人在线观看_国产精品久久无码不卡黑寡妇_欧洲女人牲交视频免费_91精品免费久久久 | 国产乱子伦农村xxxx_五码亚洲_日韩精品无码人成视频_俺也去一区二区_在线观看亚洲网站_高清色视频在线观看 | 欧美黑人视频_国产精品美女一区二区三区四区_XXX舌L伦农村人XXX_亚洲专区一二三_曰批全过程免费视频在线观看草莓_heyzo无码综合国产精品 | 午夜在线成人_人人干日日干_9色视频在线_亚洲黄色精品视频_亚洲欧美综合自拍_国产91在线观看网站 | 99国产精品人妻噜啊噜_亚洲毛毛片_亚洲精品中文综合第一页_国产精品美女一区二区在线观看_欧美高清在线精品一区_99久久精品国产一区二区蜜芽 | 性猛交xxxxx按摩中国_午夜免费一区二区_韩国日本伦理片_每日更新av在线播放_亚洲一本在线_欧美日韩资源 | 蝴蝶视频成人免费_日韩一区二区三区免费播放_特级毛片三a级毛片免费_麻豆一区二区三区四区精品蜜桃_午夜dj影院_国产九九九视频 | 国产精品成人无码久久久_久久国产精品久久久久久电车_剑来动漫高清视频在线观看_污污网站免费看_亚洲午夜天堂精品福利天堂_成人国产精品久久久 |