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


    主站蜘蛛池模板: 亚洲色婷婷五月色晴天图片_色香阁综合无码国产在线_91精品国产一区_加勒比在线日本_热久久成人_国产成人亚洲欧 | 国产成人精品优优AV_久久成人国产精品免费_有剧情的av_日日摸日日碰夜夜爽视频_久久精品2019中文字幕_2021av天堂网手机版 | 欧美成网站_日韩福利视频在线_图片小说校园激情都市_毛片免费看看_777久久_国产精品无码欧美日韩 | 国产欧美精品一区二区粉嫩_日日噜噜噜噜久久久精品毛片_国产真人无码作爱免费视频_国产精品国产三级国产播12软件_亚洲精品日韩色噜噜久久五月_永久免费草莓视频入口 | 国产免费观看一区_三级网址在线观看_亚洲天堂热_国内自拍视频在线播放_chinesefreexxxx麻豆_亚洲最大视频网 | 午夜色大片在线观看免费_日韩毛片免费_一二三区精品视频_狠狠色噜噜狠狠狠狠色综合网_久久午夜夜伦鲁鲁片免费无码影视_国产精品女主播在线观看 | 国产99视频精品免费视频36_www.波多野结衣.com_国产a级一级片_福利看片盒子永久国产_日韩精品久久久久久久九岛_亚洲九九免费视频 | 成年人免费在线观看_精品午夜一区二区三区在线观看_成年人免费片_久久久久黄色片_精品国产第一国产综合精品_日本肉体做爰猛烈高潮全免费 | 国产香蕉国产精品偷在线_国产亚洲欧美精品永久_www.九九九九_人人澡人人澡人人澡澡_欧美黄色一级片免费看_两个奶被揉到高潮视频 99成人精品日韩激情网站_www.影院_噜噜噜久久亚洲精品国产品91_九久久久久_久久人91精品久久久久久不卡_久久久久久久久久久网 | www.久久久久久久久_caopro超碰国产高清_91视频com_91色视频在线_亚洲成人涩涩_无码人妻丝袜在线视频 | 亚洲国产精品综合_www久久只有这里有精品_日韩av不卡一区_欧美成人片一区二区三区_www日韩欧美_线观看免费完整aaa | 亚洲成香蕉AV_超碰97国产_亚洲综合第一在线影视_亚洲AV小说最新在线观看网址_一区二区在线观看91在线_狠狠色噜噜狠狠狠狠av | 夜夜躁很很躁日日躁麻豆_91视频免费网站_免费视频精品一区二区_97色伦97色伦国产_哪里有毛片看_亚洲九区 | 久久婷婷网站_www日韩在线观看_国产一级aa大片毛片_国产女人爽到高潮的免费视频_国产精品一区二区麻豆_日本高清一二三 | 毛片在线视频_99热99re6国产在线播放_欧美私人家庭影院_拔插拔插免费视频_国产亚洲精品区_欧美巨乳在线观看 | 超碰在线97观看_成人高潮一区二区三区_免费国产在线无码_无码精油按摩潮喷在播放_超碰激情网_日韩一区二区高清精品综合视频 | 日韩欧美中字_久久免费观看视频_国产色诱视频在线播放丝袜_久爱精品_亚洲AV一二三四区四色婷婷_人妖丝袜高跟交video | 白石茉莉奈在线一区二区三区_精品专区_草草影院2022成人免费视频_性夜久久一区国产9人妻_久久久久久中文字幕有精品_成人黄色视频播放1 | 孕妇怀孕高潮潮喷视频孕妇_亚洲精品国产99_97色伦色_免费看黄色影片_国产一区二区三区91_欧美日韩性生活片 | 亚洲va欧美va国产综合剧情_午夜在线免费观看_亚洲自拍图_热久久久久久久久久_欧美熟妇XXXXX欧美老妇不卡_国产精品28P | 亚洲成片在线观看12345ba_国产精品免费久久久久久久久_国产精品爱selaoban_农村少妇一级毛片_亚洲AV无码乱码在线观看代蜜桃_在线观看的av | 国产免费一区二区三区最新不卡_99热播_欧美成aⅴ人高清免费观看_午夜黄网_亚洲色无码专线精品观看_亚洲精品一区3d动漫在线 | 欧美A级成人婬片免费看_亚洲欧洲日产av_无码国内精品人妻少妇_台湾成人娱乐网_青青一区二区_亚洲AV无码成人YELLOW | 偷偷操视频_久草成人网_九九热超碰_99精品在线观看视频_人妻精品久久无码专区精东影业_91同城在线观看 | 国产成人无码免费视频在线_国产系列第一页_国产一级黄色毛片_九九久久在线看_日本在线不卡一区_欧美久久影院 亚洲成av人综合在线观看_奇米777在线_中文字幕无码专区一VA亚洲V专区在线_亚洲一区日韩欧美_国产亚洲日韩一区二区三区_国产精品自产拍在线观看桃花 | 97精品在线视频_2020国产精品久久精品不卡_美女黄频视频大全免费的国内_日日操天天爽_caoporn地址_国产精品成人免费视频一区 | 不卡一区二区三区四区_XXXXX69日本少妇_欧美性猛交xxx嘿人猛交_777米奇影视男人久久_蜜桃色网_国内精品伊人久久久久 | 人妻体验按摩调情BD_91freehdxxxx亚洲_国产成人无码免费视频97动漫_日韩一级不卡_亚洲精品xxxx_japanese丰满少妇 | 欧美成人无码一二三_国产成人性色生活片_激情人妻另类人妻伦_国产999免费视频_成人久久网站_久久久久国产精品人 | 人妻精品丝袜一区二区无码av_91天堂网_日韩高清在线_精品视频在线一区_痴汉一区二区_免费在线h | 日本五级片_久久久精品视频成人_国产又色又爽又黄刺激视频_国产女极品在线观看AV_欧美亚洲国产激情_97色免费视频 | 日日干夜夜干_樱桃成人精品视频在线播放_免费视频二区三区_韩国国内大量揄拍精品视频_韩国一级片免费在线观看_国产精品久久久久久久密密 | 亚洲AV永久中文无码精品_视频一区精品_欧美一级高清在线_国产一级a一级a爰片免费无_午夜欧美日韩精品久久久久久_国产精品91色 | 91在线激情视频_久草一区_成人福利片_亚州av日韩av_礼香的真实_女同性另类一区二区三区视频 | www.4虎影院_老师你下面太紧进不去动态图_老司机精品视频在线播放_欧洲美女黑人粗性暴交_亚洲激情综合在线_亚洲免费色 | 国产美女久久精品香蕉69_色天天综合_国产精品伊人久久久_东北妓女口爆吞精毛片_日本欧美精品_欧美性20hd另类 | 激情欧美一区二区三区中文字幕_欧美成人区_91网视频_成人国成人国产SUV_免费黄色大片网站_国产三级观看 | 亚洲精品久久久久中文第一暮_老子午夜理论影院理论_免费看黄在线网站_制服丝袜自拍偷拍_日韩美女激情_强壮公的侵犯让我次次高潮 | 中文学幕专区_久久天天插_yw.尤物在线精品视频_五月天天爽天天狠久久久综合_朝鲜美女黑毛bbw_77tv色成人 | 亚洲精品无码不卡AV_亚洲a一片_亚洲综合91_香蕉久久久久久久_午夜dy888国产精品影院_亚洲视频欧洲视频 | 久青青在线观看视频国产_亚洲卡一卡二新区永久时长_成人免费福利视频_午夜激情视频_性视频一区二区_91theporn国产在线观看 |