IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Unity 3D 创建 合适角度 圆环 内 五边形柱体 mesh -> 正文阅读

[游戏开发]Unity 3D 创建 合适角度 圆环 内 五边形柱体 mesh

//角度为0-360正值,0起X轴逆时针
    public static GameObject CreatePentagonMesh(float _radius, float _innerradius, float _startangle, float _angledegree, float _height,GameObject obj = null)
    {
        //Debug.Log(string.Format("起始角度 = {0},总角度 = {1}.", _startangle, _angledegree));
        GameObject tempGo = obj;
        if (tempGo == null)
        {
            tempGo = new GameObject("Pentagon");
        }
        MeshFilter meshFilter = tempGo.GetOrAddComponent<MeshFilter>();
        MeshRenderer meshRenderer = tempGo.GetOrAddComponent<MeshRenderer>();
        Shader Shader = Shader.Find("Unlit/Color");

        Vector3[] vertices = new Vector3[30];
        float totalAngle = _angledegree - _startangle;

        float tempDis = _innerradius / Mathf.Cos(totalAngle * 0.5f * Mathf.Deg2Rad);

        Vector3 leftDir = Quaternion.AngleAxis(_angledegree, Vector3.up) * Vector3.right;

        Vector3 middleDir = Quaternion.AngleAxis(_startangle + totalAngle * 0.5f, Vector3.up) * Vector3.right;

        Vector3 rightDir = Quaternion.AngleAxis(_startangle, Vector3.up) * Vector3.right;

        //bottom
        vertices[0] = tempDis * leftDir;
        vertices[1] = _radius * leftDir;
        vertices[2] = _radius * middleDir;
        vertices[3] = _radius * rightDir;
        vertices[4] = tempDis * rightDir;

        if (vertices[0].magnitude > vertices[1].magnitude)
        {
            Debug.Log("角度或半径差不太合适。");
        }

        //top
        for (int i = 0; i < 5; i++)
        {
            vertices[i + 5] = vertices[i] + _height * Vector3.up;
        }

        vertices[10] = vertices[0];
        vertices[11] = vertices[5];
        vertices[12] = vertices[9];
        vertices[13] = vertices[4];

        vertices[14] = vertices[4];
        vertices[15] = vertices[9];
        vertices[16] = vertices[8];
        vertices[17] = vertices[3];

        vertices[18] = vertices[3];
        vertices[19] = vertices[8];
        vertices[20] = vertices[7];
        vertices[21] = vertices[2];

        vertices[22] = vertices[2];
        vertices[23] = vertices[7];
        vertices[24] = vertices[6];
        vertices[25] = vertices[1];

        vertices[26] = vertices[1];
        vertices[27] = vertices[6];
        vertices[28] = vertices[5];
        vertices[29] = vertices[0];

        int[] triangles = new int[]
        {
            0,1,2,
            0,2,4,
            4,2,3,

            5,7,6,
            5,9,7,
            9,8,7,

            0,9,5,
            0,4,9,

            4,8,9,
            4,3,8,

            3,7,8,
            3,2,7,

            2,6,7,
            2,1,6,

            1,5,6,
            1,0,5,
        };

        Mesh mesh = new Mesh();
        mesh.vertices = vertices;
        mesh.triangles = triangles;

        meshFilter.mesh = mesh;
        meshRenderer.material.shader = Shader;
        meshRenderer.material.color = Color.gray;

        mesh.RecalculateNormals();

        MeshCollider mc = tempGo.GetOrAddComponent<MeshCollider>();
        mc.sharedMesh = mesh;
        mc.convex = true;
        mc.isTrigger = true;

        return tempGo;
    }

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-11-11 13:02:12  更:2021-11-11 13:02:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/28 0:49:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码