网格制作圆形

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Round : MonoBehaviour
{
public MeshFilter meshFilter;
public MeshRenderer meshRenderer;
public Texture texture;

public int num;//角的数量
public float r = 10;//半径
void Start()
{
meshFilter = gameObject.AddComponent<MeshFilter>();
meshRenderer = gameObject.AddComponent<MeshRenderer>();

Mesh mesh = new Mesh();
VertexHelper vh = new VertexHelper();
//添加圆心
vh.AddVert(Vector3.up,Color.white,new Vector2(0.5f,0.5f));
//计算弧度
float ang = (2 * Mathf.PI) / num;

for (int i = 0; i < num; i++)
{

float x = Mathf.Sin(i*ang)*r;
float z = Mathf.Cos(i*ang)*r;
float uvx = (x + r) / (2 * r);
float uvy = (z + r) / (2 * r);
//圆的中心点
vh.AddVert(new Vector3(x,1,z), Color.white, new Vector2(uvx, uvy));
//添加绘制
if (i==0)
{
vh.AddTriangle(0,num,1);
}
else
{
vh.AddTriangle(0, i, i+1);
}
}
vh.FillMesh(mesh);
mesh.RecalculateNormals();

meshFilter.mesh = mesh;

Material material = new Material(Shader.Find("Standard"));
material.mainTexture = texture;
meshRenderer.material = material;
gameObject.transform.eulerAngles = new Vector3(-90,0,0);
}

// Update is called once per frame
void Update()
{

}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值