zoukankan      html  css  js  c++  java
  • 使用Mesh 生成雷达图

    private Vertor3[] m_verts;
    private Vertor2[] m_UV;
    private Vector3[] meshIndicte;
    private bool m_change = false;
    private meshFilter m_meshFilter;
    private Mesh m_mesh;
    private MeshRender meshRender;
    public Material m_material;

    public void SetChatData(Verctor3 [] verts)
    {

    if (verts == null || verts.Length < 3)
    return;
    m_verts = new Vertor3[verts.Length +1];
    for (int i = 0; i < verts.Length; i++)
    {
    m_verts[i] = verts[i];
    }

    m_verts [verts.Length -1] = new Vector3();

    m_UV = new Vertor2[m_verts.Length+1];
    int val = m_UV.Length / 4;
    for (int i = 0; i< m_UV.Length -1;i++)
    {
    if (i <= val)
    {
    m_UV[i] = new Vertor2(0, 0) + new Vertor2(0, 1) * (i*1.0f/val);
    }
    else if (i <= 2 * val)
    {
    m_UV[i] = new Vertor2(1,0) + new Vertor2(0, 1) * ((i-val) * 1.0f / val);
    }
    else if (i <= 3 * val)
    {
    m_UV[i] = new Vertor2(1, 1) - new Vertor2(1, 0) * ((i-2*val) * 1.0f / val);
    }
    else if (i <= 4 * val)
    {
    m_UV[i] = new Vertor2(0, 1) - new Vertor2(0, 1) * ((i-3*val) * 1.0f / val);
    }

    m_UV[m_UV.Length - 1] = new Vertor2(0.5f,0.5f);

    meshIndicte = new Vector3[3*(m_UV.Length-1)];

    int index = 0;
    for (int i = 0; i< m_UV.Length; i++)
    {
    meshIndicte[index] = m_UV.Length - 1;

    meshIndicte[index + 1] = i;

    if (i == m_UV.Length - 2)
    {
    meshIndicte[index + 2] = 0;
    }
    else
    {
    meshIndicte[index + 2] = i + 1;

    }
    index += 3;
    }
    m_change = true;

    }


    void Update()
    {
    if (m_change)
    {
    m_change = false;
    meshRender.enable = true;
    mesh.vert = m_verts;
    mesh.uv = m_UV;
    mesh.setIndices(meshIndicte,MeshTopology.Triangle,0);
    mesh.RecalculateBounds();
    }

    }


    void Star()
    {
    m_mesh = new Mesh();
    if (m_meshFilter != null)
    m_meshFilter.mesh = m_mesh;
    }


    void Awake()
    {
    meshRender = gameObject.GetComponent<MeshRender>();
    if (meshRender == null)
    meshRender = gameObject.AddComponent<MeshRender>();
    meshRender.material = m_material;
    m_meshFilter = gameObject.GetComponent<MeshFilter>();
    if(m_meshFilter == null)
    m_meshFilter = gameObject.AddComponent<MeshFilter>();

    }

    }

  • 相关阅读:
    git如何将一个远程仓库的某个分支拉取到当前分支?
    linux下如何检查内核补丁是否符合社区代码规范?
    javascript快速入门20--Cookie
    javascript快速入门19--定位
    javascript快速入门18--样式
    javascript快速入门17--事件
    javascript快速入门16--表格
    javascript快速入门15--表单
    javascript快速入门15--节点
    javascript快速入门14--DOM基础
  • 原文地址:https://www.cnblogs.com/DOGame/p/9407057.html
Copyright © 2011-2022 走看看