Unity3D中 使用Mesh绘制方锥形
  ZcJgkb1g5qMe 2023年11月02日 69 0

/// <summary>
/// 方锥。
/// </summary>
/// <retu rns></returns>
public Mesh CreateSquareDetectionLineCloseMesh(Vector3 topPos, Vector3 pos1, Vector3 pos2, Vector3 pos3, Vector3 pos4)
{
    Mesh mesh = new Mesh();

    var vertices = new List<Vector3>();
    var indices = new List<int>();

    vertices.Add(topPos);

    vertices.Add(pos1);
    vertices.Add(pos2);
    vertices.Add(pos3);
    vertices.Add(pos4);

    //侧面,双面
    indices.Add(0);
    indices.Add(1);
    indices.Add(4);

    indices.Add(0);
    indices.Add(4);
    indices.Add(1);

    indices.Add(0);
    indices.Add(2);
    indices.Add(1);

  indices.Add(0);
  indices.Add(1);
  indices.Add(2);

  indices.Add(0);
  indices.Add(3);
  indices.Add(2);

  indices.Add(0);
  indices.Add(2);
  indices.Add(3);

  indices.Add(0);
  indices.Add(4);
  indices.Add(3);

  indices.Add(0);
  indices.Add(3);
  indices.Add(4);

  //底面,封口
  //indices.Add(1);
  //indices.Add(2);
  //indices.Add(3);

  //indices.Add(1);
  //indices.Add(3);
  //indices.Add(2);

  //indices.Add(1);
  //indices.Add(3);
  //indices.Add(4);

  //indices.Add(1);
  //indices.Add(4);
  //indices.Add(3);

  mesh.SetVertices(vertices);
  mesh.SetIndices(indices.ToArray(), MeshTopology.Triangles, 0);

  //设置UV
  Vector2[] _uv = new Vector2[vertices.Count];
  _uv[0] = new Vector2(0.5f, 1f);
  _uv[1] = new Vector2(1f, 0f);
  _uv[2] = new Vector2(0f, 0f);
  _uv[3] = new Vector2(1f, 0f);
  _uv[4] = new Vector2(0f, 0f);
  mesh.uv = _uv;
  return mesh;
}
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

ZcJgkb1g5qMe