Unity 生成多边形最简单的方法
按照正常的思维,先将多边形进行三角剖分,生成网格,再添加碰撞器,去实现业务逻辑
多边形三角化是件麻烦事,还需要考虑多边形的凹凸性,有没有洞等
其实可以反其道而行,先添加碰撞器,通过碰撞器生成mesh,代码比较简单,直接上代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CreateMesh : MonoBehaviour
{
    public Vector2[] points;
    void Start()
    {
        //EdgeColliderTest();
        PolygonColliderTest();
    }
    void PolygonColliderTest()
    {
        PolygonCollider2D poly = gameObject.AddComponent<PolygonCollider2D>();
        poly.points = points;
        Mesh mesh = poly.CreateMesh(true, true);
        MeshFilter mf = gameObject.AddComponent<MeshFilter>();
        mf.mesh = mesh;
        MeshRenderer mr = gameObject.AddComponent<MeshRenderer>();
        mr.material = new Material(Shader.Find("Standard"));
    }
    void EdgeColliderTest()
    {
        EdgeCollider2D edge = gameObject.AddComponent<EdgeCollider2D>();
        edge.points = points;
        edge.edgeRadius = 0.1f;
        Mesh mesh = edge.CreateMesh(true, true);
        MeshFilter mf = gameObject.AddComponent<MeshFilter>();
        mf.mesh = mesh;
        MeshRenderer mr = gameObject.AddComponent<MeshRenderer>();
        mr.material = new Material(Shader.Find("Standard"));
    }
}
多边形效果:


线段效果:


关于多边形三角化可以参考我的另一篇文章:https://www.cnblogs.com/Jason-c/p/18220916
如果对你有帮助,支持一下原创,点个赞吧
博客园Jason_c微信打赏码
如果本篇文档对你有帮助,打赏Jason_c根华子吧,他的私房钱被老婆没收了,呜呜!
	
                    
                
                
            
        
浙公网安备 33010602011771号