首页 > 其他分享 >Unity 多边形三角化

Unity 多边形三角化

时间:2024-05-29 19:58:43浏览次数:21  
标签:多边形 三角 public Unity mesh using PolygonCollider2D polygonCollider

GitHub找到一个用耳切法进行多边形三角化的库,简单测试了一下,感觉还行,推荐给大家

项目地址:https://github.com/SebLague/Ear-Clipping-Triangulation

测试代码:

using Sebastian.Geometry;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{
    public PolygonCollider2D polygonCollider;

    public MeshFilter mf;
    public MeshFilter mf2;

    void Update()
    {
        Vector3[] verts = new Vector3[polygonCollider.points.Length];
        for (int i = 0; i < polygonCollider.points.Length; i++)
        {
            verts[i] = polygonCollider.points[i];
        }
        mf.mesh.vertices = verts;
        Polygon polygon = new Polygon(polygonCollider.points);
        Triangulator triangulator = new Triangulator(polygon);
        mf.mesh.triangles = triangulator.Triangulate();

        mf2.mesh = polygonCollider.CreateMesh(false,false);
    }
}

 

效果:

 左边是这个项目生成的mesh,多边形相交也能正确绘制mesh

中间是通过PolygonCollider2D编辑生成的顶点

右边是PolygonCollider2D生成的mesh,相交的部分有个洞,如果业务逻辑中确定多边形不会相交,用unity自带的PolygonCollider2D创建mesh也是不错的选择

标签:多边形,三角,public,Unity,mesh,using,PolygonCollider2D,polygonCollider
From: https://www.cnblogs.com/Jason-c/p/18220916

相关文章

  • 三角网分块问题
        针对超大数据的构网问题,目前可行的方法就是对三角网进行分块处理,但是三角网的分块显然不像点云数据那么简单,如何对三角网进行切分,以及切分后块与块之间索引关系的建立都是难点;例如下图仅仅是对三角网进行了空间的切分,但是块与块的边界处的联系并没有建立。当然三角网......
  • 长三角快递物流展会议推荐:2024中国快递物流智能装备创新技术论坛
    一、会议介绍随着电商、新零售、工业领域的不断发展与创新,快递物流行业正迎来前所未有的发展机遇。为了进一步推动智能装备在快递物流领域的创新应用与发展,由上海市快递行业协会,青浦圆桌会议主办的“2024中国快递物流智能装备创新技术论坛”于2024年7月9日在杭州国际博览中心......
  • Unity版本使用情况统计(更新至2024年4月)
    UWA发布|本期UWA发布的内容是第十四期Unity版本使用统计,统计周期为2023年11月至2024年4月,数据来源于UWA网站(www.uwa4d.com)性能诊断提测的项目。希望给Unity开发者提供相关的行业趋势作为参考。2023年11月-2024年4月版本分布  以近半年的数据统计来看,如图1所示,2021.3的版......
  • Unity玩家本地得分排名系统的制作
    UI的制作首先,我们建一个新的场景把他命名为Scoring,在Scoring场景导入积分面板资源25.3(资源下载放在置顶了)并设置渲染摄像机,在游戏结束时我们将切换到这个场景。配置好将看到如下界面,资源来自biliup阿严Dev其次,制作button按钮即返回主菜单功能,只需在ScoringUI——Scori......
  • css画箭头,三角形
    箭头.arrow{border:solidblack;border-width:01px1px0;display:inline-block;padding:4px;}//向上.up{transform:rotate(-135deg);-webkit-transform:rotate(-135deg);}//向下.down{transform:rotate(45deg);-webkit-transform:r......
  • [3B1B]从三角函数到 GF
    三角函数高中数学必一第五章。弧度制通过数学知识可以证明,对于一个圆的圆心角\(α\),其所对的弧\(l\)与半径的比值\(\frac{l}{r}\)是确定的。相应的,\(\frac{l}{r}\)的确定也能确定\(\alpha\),因此我们建立弧度制:\[|\alpha|=\frac{l}{r}\]一个角是正角,当且仅当它的终边......
  • 软件构造思想在Unity项目中的实践举例(2)
    本文系笔者在学习软件构造课程期间所写,不保证通用性和正确性,仅供参考。目录前言Spec撰写与TestFirst防止表示泄漏重载与修饰结语一、前言详见上一期软件构造思想在Unity项目中的实践举例(1),这是一个早早就选好题但因为懒才拖到现在的系列。我将介绍我的一个正在工作中......
  • 得到杨辉三角某行数据算法优化
    引导注意:最佳方案在文章最后,中间为思考过程最朴实的方法:        我们将这些数据的第一行称作为杨辉三角的第0行,每行的第一个数据称作为第0个数据,以方便之后的算法        根据杨辉三角的基础性质,即第row行index个数据等于第row-1行第index数......
  • Unity屏幕分辨率适配方法
    Unity屏幕分辨率适配方法在Unity中实现屏幕分辨率适配,可以使用以下几种方法:1.使用CanvasScaler创建Canvas:在Unity编辑器中创建一个Canvas,它将自动添加一个CanvasScaler组件。设置CanvasScaler:选择Canvas对象,找到CanvasScaler组件,并设置其属性:UIScaleMode:选......
  • Unity性能优化——其他合集
     本节将详细介绍在收集性能分析数据之前不应使用的优化。可能的原因是这些优化在实现时非常耗费精力,在提高性能的同时可能会损害代码整洁性或可维护性,或者解决的可能仅仅是特定的范围内才存在的问题。多维数组与交错数组如该 StackOverflow文章所述,遍历交错数组通常比遍历多......