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

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

    UNITY3D給立方體六個面貼不同的紋理圖

    2019/5/10??????點擊:


    using UnityEngine;
    using System.Collections;
     
    [RequireComponent(typeof(MeshFilter), typeof(MeshRenderer))]
    public class Test3D : MonoBehaviour
    {
     
        public enum Direction
        {
            ClockWise,
            Anti_ClockWise
        }
     
        public Material mat;
     
        public Direction direction;
     
        // Use this for initialization
        void Start()
        {
            switch (direction)
            {
                case Direction.ClockWise:
                    DrawCubeWithUV_CloclWise();
                    break;
                case Direction.Anti_ClockWise:
                    DrawCubeWithUV_Anti_CloclWise();
                    break;
            }
        }
     
     
     
        void DrawCubeWithUV_CloclWise()
        {
            gameObject.GetComponent().material = mat;
     
            Mesh mesh = GetComponent().mesh;
            mesh.Clear();
     
            //設置頂點
            mesh.vertices = new Vector3[]
            {
                //front
                new Vector3(0, 0, 0),
                new Vector3(0, 0, 1),
                new Vector3(1, 0, 1),
                new Vector3(1, 0, 0),
     
                //top
                new Vector3(0, 0, 1),
                new Vector3(0, 1, 1),
                new Vector3(1, 1, 1),
                new Vector3(1, 0, 1),
     
                //back
                new Vector3(0, 1, 1),
                new Vector3(0, 1, 0),
                new Vector3(1, 1, 0),
                new Vector3(1, 1, 1),
     
                //bottom
                new Vector3(0, 1, 0),
                new Vector3(0, 0, 0),
                new Vector3(1, 0, 0),
                new Vector3(1, 1, 0),
     
                //left
                new Vector3(0, 1, 0),
                new Vector3(0, 1, 1),
                new Vector3(0, 0, 1),
                new Vector3(0, 0, 0),
     
                //right
                new Vector3(1, 0, 0),
                new Vector3(1, 0, 1),
                new Vector3(1, 1, 1),
                new Vector3(1, 1, 0),
            };
     
     
     
            //順時針看不到正面的,貼圖在里面
            mesh.triangles = new int[]
           {
                  0,1,2,
                  0,2,3,
                  4,5,6,
                  4,6,7,
                  8,9,10,
                  8,10,11,
                  12,13,14,
                  12,14,15,
                  16,17,18,
                  16,18,19,
                  20,21,22,
                  20,22,23
     
           };
     
            Vector2[] uvs = new Vector2[mesh.vertices.Length];
            for (int i = 0; i < uvs.Length; i += 4)
            {
                //正常貼圖
                uvs[i] = new Vector2(0, 0);
                uvs[i + 1] = new Vector2(0, 1);
                uvs[i + 2] = new Vector2(1, 1);
                uvs[i + 3] = new Vector2(1, 0);
     
                //轉換貼圖
                //uvs[i] = new Vector2(1, 0);
                //uvs[i + 1] = new Vector2(1, 1);
                //uvs[i + 2] = new Vector2(0, 1);
                //uvs[i + 3] = new Vector2(0, 0);
            }
            mesh.uv = uvs;
     
            //Vector3[] normals = new Vector3[mesh.vertices.Length];
            //for (int i = 0; i < normals.Length; i++)
            //{
            //    if (i < 4)
            //        normals[i] = Vector3.forward;
            //    if (i >= 4 && i < 8)
            //        normals[i] = Vector3.up;
            //    if (i >= 8 && i < 12)
            //        normals[i] = Vector3.back;
            //    if (i >= 12 && i < 16)
            //        normals[i] = Vector3.down;
            //    if (i >= 16 && i < 20)
            //        normals[i] = Vector3.left;
            //    if (i >= 20 && i < 24)
            //        normals[i] = Vector3.right;
            //}
            //mesh.normals = normals;
        }
     
        void DrawCubeWithUV_Anti_CloclWise()
        {
            gameObject.GetComponent().material = mat;
     
            Mesh mesh = GetComponent().mesh;
            mesh.Clear();
     
            //設置頂點
            mesh.vertices = new Vector3[]
            {
                //front
                new Vector3(0, 0, 0),
                new Vector3(0, 0, 1),
                new Vector3(1, 0, 1),
                new Vector3(1, 0, 0),
     
                //top
                new Vector3(0, 0, 1),
                new Vector3(0, 1, 1),
                new Vector3(1, 1, 1),
                new Vector3(1, 0, 1),
     
                //back
                new Vector3(0, 1, 1),
                new Vector3(0, 1, 0),
                new Vector3(1, 1, 0),
                new Vector3(1, 1, 1),
     
                //bottom
                new Vector3(0, 1, 0),
                new Vector3(0, 0, 0),
                new Vector3(1, 0, 0),
                new Vector3(1, 1, 0),
     
                //left
                new Vector3(0, 1, 0),
                new Vector3(0, 1, 1),
                new Vector3(0, 0, 1),
                new Vector3(0, 0, 0),
     
                //right
                new Vector3(1, 0, 0),
                new Vector3(1, 0, 1),
                new Vector3(1, 1, 1),
                new Vector3(1, 1, 0),
            };
     
            //逆時針看到的很好,但是貼圖反了
            mesh.triangles = new int[]
           {
                  0,2,1,
                  0,3,2,
                  4,6,5,
                  4,7,6,
                  8,10,9,
                  8,11,10,
                  12,14,13,
                  12,15,14,
                  16,18,17,
                  16,19,18,
                  20,22,21,
                  20,23,22
           };
    #if false
            //六個面貼同一張圖片
            Vector2[] uvs = new Vector2[mesh.vertices.Length];
            for (int i = 0; i < uvs.Length; i += 4)
            {
                //uvs[i] = new Vector2(0, 0);
                //uvs[i + 1] = new Vector2(0, 1);
                //uvs[i + 2] = new Vector2(1, 1);
                //uvs[i + 3] = new Vector2(1, 0);
                uvs[i] = new Vector2(1, 0);
                uvs[i + 1] = new Vector2(1, 1);
                uvs[i + 2] = new Vector2(0, 1);
                uvs[i + 3] = new Vector2(0, 0);
            }
            mesh.uv = uvs;
    #else
            //六個面貼不同的圖片
            Vector2[] uvs = sixTexForCube(mesh.vertices);
            mesh.uv = uvs;
    #endif
            //法線
            //Vector3[] normals = new Vector3[mesh.vertices.Length];
            //for (int i = 0; i < normals.Length; i++)
            //{
            //    if (i < 4)
            //        normals[i] = Vector3.forward;
            //    if (i >= 4 && i < 8)
            //        normals[i] = Vector3.up;
            //    if (i >= 8 && i < 12)
            //        normals[i] = Vector3.back;
            //    if (i >= 12 && i < 16)
            //        normals[i] = Vector3.down;
            //    if (i >= 16 && i < 20)
            //        normals[i] = Vector3.left;
            //    if (i >= 20 && i < 24)
            //        normals[i] = Vector3.right;
            //}
            //mesh.normals = normals;
        }
     
        Vector2[] sixTexForCube(Vector3[] verticles)
        {
            Vector2[] uv = new Vector2[verticles.Length];
     
            float t = 1 / 3f;
     
            //front
            uv[0] = new Vector2(t, 0);
            uv[1] = new Vector2(t, t);
            uv[2] = new Vector2(0, t);
            uv[3] = new Vector2(0, 0);
     
            //top
            uv[4] = new Vector2(2 * t, 0);
            uv[5] = new Vector2(2 * t, t);
            uv[6] = new Vector2(t, t);
            uv[7] = new Vector2(t, 0);
     
            //back
            uv[8] = new Vector2(1, 0);
            uv[9] = new Vector2(1, t);
            uv[10] = new Vector2(2 * t, t);
            uv[11] = new Vector2(2 * t, 0);
     
            //Bottom
            uv[12] = new Vector2(t, t);
            uv[13] = new Vector2(t, 2 * t);
            uv[14] = new Vector2(0, 2 * t);
            uv[15] = new Vector2(0, t);
     
            //left
            uv[16] = new Vector2(2 * t, t);
            uv[17] = new Vector2(2 * t, 2 * t);
            uv[18] = new Vector2(t, 2 * t);
            uv[19] = new Vector2(t, t);
     
            //right
            uv[20] = new Vector2(1, t);
            uv[21] = new Vector2(1, 2 * t);
            uv[22] = new Vector2(2 * t, 2 * t);
            uv[23] = new Vector2(2 * t, t);
     
            return uv;
        }
    }


    主站蜘蛛池模板: 成人h在线观看_黄色片免费看看_九九日韩_亚洲毛片在线_国产精品高潮呻吟AV久久无吗_日韩精品一区二区三区久久 | 人妻AV中文系列_又爽又色又高潮的免费软件_久久久久久久久久久网站_国产在线精品免费av_国产精品白虎_天堂俺去俺来也www久久婷婷 | 91啪亚洲精品_免费黄色大片网址_日本久久网_桃色视频免费看_少妇的肉体在线观看_自拍偷拍中文字幕 | 欧美日本视频一区_国产精品视频500部_996久久国产精品线观看_曰韩无码AV一区二区免费_一级视频在线观看_国产妇女aaaaaa免费视频 啊v在线免费观看_91免费版在线看_一区二区视频网站_最新日韩免费_男男黄GAY片免费网站WWW_91国在拍‖国语自产 | 日韩亚洲_亚洲日韩欧美制服二区DVD_香蕉网色_国产清纯美女爆白浆视频_草草视频免费观看_成年人视频免费在线看 | 中文有码人妻字幕在线_97在线免费看视频_美女视频一区二区三区_成年女人毛片免费中文_91色哟哟_中日韩一区 | 91风间由美一区二区三区四区_日韩黄色片视频_亚洲AV日韩AV高潮喷无码_av资源免费看_中文无码伦AV中文字幕在线_A三级三级成人网站在线视频 | 99热新_欧美性成人_91超碰在线播放_91av中文字幕_久re在线_www.久久久久久 | 女十八毛片_国产精品视频免费在线观看_内射中出日韩无国产剧情_日韩一区二区三区在线视频观看_免费国产黄网站在线播放_成人高潮视频 | 亚洲日韩精品无码专区_国产精品不卡顿_国产精品人妖ts系列视频_亚洲AV成人网站在线观看_www.国产福利_亚洲一区高清视频 | 欧美日韩1区2区3区_欧美精品一区二区三区涩爱蜜_99爱在线视频这里只有精品_特级做a爱片免费69_成人内射国产免费观看_另类三区 | 国产成人资源手机免费看a_亚洲欧美视频二区_午夜播影院_午夜在线免费视频_久久久久久成人综合网_白白国产永久视频 | 国产乱XXXXX97国语对白_白浆一区二区_欧美日日干_精品一区二区三区四区av_日本xxxxxxx18—19_56av国产精品久久久久久久 | 成年在线播放小视频_中国极品少妇xxxx_野花视频在线观看最新免费_日本入室强伦姧BD在线观看_国产日韩av一区二区_19sex性高清播放 | 精品一区二区国产在线观看_成人免费看片网站_久久久久国产精品人妻A_操操操插插插_国产精品一区二区三区四区视频_91mv.cool在线播放 | 国产在线国偷精品_欧美zooz人禽交xxxx_亚洲国产天堂_热久久久久_亚洲精品无码高潮喷水A片_麻豆国产精品无码人妻无码 | 91综合入口_日韩欧美国产第一页_日韩精品一区二区三区第95_麻豆传煤111133网站_91精品国产乱码久_欧美视屏一区二区 | 日本免费看视频_69pao强力打造_亚洲AV伊人久久综合密臀性色_国产真实伦在线观看_国产综合精品一区_强行扒开女同学腿看屁股眼 | 大香伊蕉国产播放_激情久久亚洲_99久久精品国产系列_国产激情久久久久影院老熟女免费_亚洲av无码精品色午夜蛋壳_亚洲av永久无码精品尤物 | 久久香蕉视频网站_久久久久亚洲精品视频_国产精品页_9色自拍_亚洲成年片_四虎永久在线精品免费无码 | 成人未满十八无毛片_国产一二三区不卡_国产小视频自拍_91深夜视频_国产成人资源_操女人免费网站 | 国产精品综合av无码_丰满少妇人妻久久久久久4_欧洲极品无码一区二区三区_亚洲精品mv免费_欧美日韩精品视频一区二区_国产精品视频海角社区88 | 在线观看国产网址你懂的_最新日韩精品在线观看_午夜性色福利免费视频在线播放_亚洲一二区精品_樱花草在线观看播放免费视频_av高清免费在线观看 | 一眉道姑免费观看高清_www午夜视频_亚洲爽爆av_国产三a级三级日产三级野外_成人国产第一区在线观看_亚洲日本中文| 亚洲视频一二三区_精品无人区麻豆乱码1区2区_狠狠97人人婷婷五月_亚洲成人aaaa_精区一品二品星空传媒_久久亚洲a | 人人妻人人做人人爽夜欢视频_在线观看中文资源视频_男人的网站在线观看_亚洲综合久久久久_日本hd好看的国产的_欧美一区二区免费 | 鲁一鲁一鲁一鲁一曰综合网_国产在线无码一区二区三区_亚洲AV中文无码乱人伦在线观看_真实国产乱子伦精品一区二区三区_欧美大尺度一区二区_伊人成人在线视频 | 亚洲欧美在线视频_亚洲自拍首页_无码国产69精品久久久久孕妇_久久99久久99精品免视看动漫_麻豆午夜福利国产高潮偷啪_精品国产91久久久久久浪潮蜜月 四虎视频在线精品免费网址_青草青草久热国产精品_免费在线亚洲_www一片黄_最色www_国产女上位疯狂榨精合集 | 日本在线播放一区二区三区_特级淫片裸体免费看_男人日b视频_久久精品免费观看_大尺度裸体日韩羞羞xxx_国产精品香蕉人多人在线观看 | 亚洲精品毛A片久久久爽_中文字幕无码久久一区_欧美女优在线视频_国产一极毛片_日产乱码一二三区别免费演员表_精品婷婷 | 韩国日本在线视频_林深见鹿免费高清在线观看39集_国产美女裸体永久无遮挡_yw.193.cnc爆乳尤物未满_久久大香萑太香蕉av_成年人免费网站视频 | 奇米影视狠888_亚洲国产日韩欧美高清片_国内精品久久久久久中文字幕_亚洲成av人片在线观看无_99精品视频网站_国产制服丝袜亚洲日本在线 | 国产农村一级特黄α**毛片_精品一区二区三区四区五区_亚洲一区视频在线播放_日本丰满的人妻HD高清在线_日韩高清专区_日本免费网站大全视频 | 在线观看黄色av_8x成人66m免费视频_特一级毛片_www.黄色小视频_特级黄色影院_秋霞毛片久久久久久久久 | 亚洲午夜AV久久久精品影院色戒_国产黄色大片免费看_国产人与动牲交毛长_黄色一区二区三区_天堂网91_青青久久综合 | 黄色免费网站在线看_欧洲精品久久_啪啪午夜视频_国产成人综合亚洲色就色_国产超污视频在线观看_三个黑人上我一个 | 日本一二三在线_91亚洲精品一区二区_成人做爰黄_4hu四虎视频紧急入口_狠狠躁18三区二区一区AI明星_9色视频在线观看 | 娇妻被生人粗大猛烈进出高潮_精品成品国色天香卡一卡二卡三_少妇张开腿迎合高潮_免费在线播放毛片_丰满少妇大力进入av亚洲_亚洲精品aaaa | 99这里只有精品_成人免费无码大片a毛片抽搐_中文字幕久久波多野结衣av不卡_91茄子在线观看_日本免费大黄在线观看_免费人成网视频在线观看 | 中文字幕亚洲欧美日韩在线不卡_久久精品亚洲国产_亚洲国产成人影院在线播放_亚洲一区二区色_亚洲一a_狠狠色综合日日 | cao在线_亚洲AV色无码乱码在线观看_国产一区二区三区四区五区VM_色诱av手机版_狠狠躁天天躁综合网_久久久久青草 |