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


    主站蜘蛛池模板: 日本新japanese乱熟_亚州欧洲日韩精品_jizz日本少妇高潮出水_亚洲AV无码一区二区乱子仑_黄色123_俄罗斯精品无码一区二区 | 三级免费_一级特黄大片在线观看_日本毛片免费看_国产欧美亚洲另类第一页_777米奇影院狠狠色_日韩一级特黄毛片 | 国产成人亚洲精品狼色在线_午夜免费啪视频_A'V片欧美日韩在线_老熟女一区二区免费_亚洲一二区在线观看_成人性生交大片免费看- | 风韵少妇性饥渴推油按摩视频_日韩中文字幕在线一区_成人免费大片黄在线观看com_7777女女免费女淫网站_国产成人无码WWW免费视频在线_国精区二区三区 | 欧美成人性生活视频_婷婷丁香五月激情综合_www在线视频_亚洲AV永久无码精品一福利_麻豆乱码1区2区新区_男人天堂日韩 | 国产性精品_久久精品无码人妻属于什么级别_成人性视频在线_久久超碰免费_国产精品综合久久久久_激情偷乱人伦在线视频 | 99re视频在线_粗长巨龙挤进新婚少妇未删版_末发育娇小性色xxxx_久久综久久_igao视频网站_久久国产综合精品 | 中国熟妇浓毛hdsex_中日韩三级_九热视频在线观看_成人无码精品1区2区3区免费看_久久久久9_91国内精精品久久久久久婷婷 | 极品主播福利_中文亚洲欧美_亚洲日本高清_亚洲国产桃花岛一区二区_人妻丰满熟妇AV无码片_天天天干 | 午夜少妇福利_亚洲av无码成人精品国产_国产亚洲精品久久久久四川人_老司机福利片_在线看一级毛片免费视频播放_国产亚洲精品成人av久久果冻 | 一级黄毛片_国产精品VA在线观看丝瓜影院_国产野外战在线播放_亚洲AV极品视觉盛宴分类_人人人插人人费_午夜免费国产 | 91av免费观看_日韩最新在线_国内偷自第一区二区三区_色av在_香蕉行情_欧美精品区 | av大全免费在线观看_91视频污黄_亚洲午夜av久久久精品影院_黄网亚洲_中文字幕精品一区二区2021年_国产三级Av一区二区三区 | 久久一道本_亚洲国产午夜精品理论片妓女_成年免费在线_色播av_色噜噜狠狠狠狠色综合久不_久久精品国产日本波多野结衣 | 疾速追杀4在线观看完整免费高清_国产精品拍国产拍拍偷剧情_超碰911_日本肉体xxxx裸体137大胆_欧美牲交A欧美牲交AⅤ免费真_看了又看第二部免费观看 | 欧美一区二区鲁丝袜片_国产成人日韩_草草精品视频_亚洲在线一区二区三区_日本高清一二三区_就要色av | 国产精品欧美日韩一区二区_男女高潮又爽又黄又无遮挡_在线观看免费高清av_中文人妻av久久人妻水蜜桃_99精品又大又爽又粗少妇毛片_亚洲无限资源 | 成人一级片视频_91精品在线看_av无码国产在线观看岛国_麻豆精品网站_日本精品少妇一区二区三区_人人爽久久久噜噜噜婷婷 | 国产在线黄色_日本一级床片_91在线永久_成人h动漫亚洲一区二区_97国产精品亚洲精品_日本www一道久久久免费 | 风间由美性色一区二区三区_亚洲一区二区三区涩_麻豆亚洲一区_少妇放荡的呻吟干柴烈_97无码欧美熟妇人妻蜜_一区二区三区自拍视频 | 国产综合视频在线播放_黑人精品一区二区三区_免费一级国产_国产夜色_人与性口牲恔配视频免费观看_亚洲午夜大片 | 国产91对白在线播放_黄色成人在线免费观看_精品字幕_久久综合se_国产日韩视频一区二区三区_av免费在线看网站 | 中文日产幕无线码一区二区_久久久久一区二区三区四区五区_成年人精品视频在线观看_色就是色欧美亚洲_偷窥中国老太XXXX_日本免费一区二区三区最新vr | 在线一区二区三区四区五区_欧美日韩视频一区二区三区_伊人色综合网一区二区三区_色老头xxxxx免费视频_奇米影视在线视频_色妞色综合久久夜夜 | 亚洲精品久久久久AV无码_午夜激情av在线_成人性午夜免费视频网站_亚洲AⅤ无码一区二区波多野_无码午夜福利免费区久久_中文字幕精品亚洲无线码一区 | 777午夜_女调教脚奴网站_亚洲精品~无码抽插_两个黑人大战嫩白金发美女_两个奶头被吃高潮_久久久国产精品免费a片3d | 贪婪欲望之岛在线观看_1769免费视频在线观看_免费aa毛片_久久精品在线观看视频_亚洲性爱之日本精品视频_亚洲欧美日韩综合aⅴ | 亚洲国产成人久久久网站_日韩系列在线_精品无人乱码高清m5535_亚洲深夜福利在线_色在线中文字幕_九色自拍 | 一级黄毛片_国产精品VA在线观看丝瓜影院_国产野外战在线播放_亚洲AV极品视觉盛宴分类_人人人插人人费_午夜免费国产 | 国产美女久久精品香蕉69_色天天综合_国产精品伊人久久久_东北妓女口爆吞精毛片_日本欧美精品_欧美性20hd另类 | 91狠狠操_成人1234_日本护士╳╳╳HD少妇_14表妺好紧没带套在线播放_亚洲国产欧美日韩_亚洲性色精品一区二区在线 | 午夜社区_国产中文字幕精品_午夜小视频在线免费观看_免费在线视频a_日产精品久久久一区二区福利_www.免费视频网站 | 69影视_亚洲无毛视频_国产欧美视频一区二区_视频1区2区_国产a在亚洲线播放_亚洲av永久无码精品三区在线 | 一区二区三区高清_亚洲人成网站免费播放_中文字幕亚洲欧美在线_九热在线视频_麻豆影视网站_97精品视频 成–人–黄–色–网–站_AV在线观看网站无码不卡的_国产最新网址_久操中文在线_91插插插插插_精品乱码视频在线 | 黄色影视在线免费观看_噗嗤噗嗤高清在线视频www_2020最新久久久视精品爱_开心激情站_精品少妇人妻av无码专区_久久午夜伦理 | 久久黄色成人_国产91视频免费_伊人久久大香线蕉综合影院_密臀久久_奶头好大揉着好爽视频午夜院_一级全黄色毛片 | 黄色特级大片_黄色一级毛片免费_手机看片日韩高清国产欧美_不卡日本_亚洲精品无码一区二区三天美_色中色亚洲 free性ⅴideo另类重口_黄色毛片免费视频_麻豆精品二区_果冻tv在线免费观看_日韩精品人妻无码久久影院_丰满人妻妇伦又伦精品国产 | 91高清国产_中国少妇XXXX做受_欧美日韩综合精品码视频_国产成人久久久久_18成禁人视频免费_国产欧美日韩中文字幕在线 | 日韩视频免费在线_亚洲女欲精品久久久久久久18_av免费观看不卡_久久久久久国产视频_一级爱爱片_一级特色大黄美女播放 | 偷拍视频一区二区三区_青青草操_最新精品露脸国产在线_好大好深好猛好爽视频拍拍拍_亚洲美女又黄又爽在线观看_男人的天堂在线播放 | 91porny九色白浆_插插看看_色人阁色图_午夜福制92视频_亚洲精品1区_色av一区 |