首页 > 其他分享 >Unity 生成多边形最简单的方法

Unity 生成多边形最简单的方法

时间:2023-07-25 10:57:29浏览次数:34  
标签:mf 多边形 AddComponent gameObject 生成 Unity mesh points

按照正常的思维,先将多边形进行三角剖分,生成网格,再添加碰撞器,去实现业务逻辑

多边形三角化是件麻烦事,还需要考虑多边形的凹凸性,有没有洞等

其实可以反其道而行,先添加碰撞器,通过碰撞器生成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"));
    }
}

  

多边形效果:

线段效果:

 

如果对你有帮助,支持一下原创,点个赞吧

标签:mf,多边形,AddComponent,gameObject,生成,Unity,mesh,points
From: https://www.cnblogs.com/Jason-c/p/17579191.html

相关文章

  • 拆解雪花算法生成规则
    1介绍雪花算法(Snowflake)是一种生成分布式全局唯一ID的算法,生成的ID称为SnowflakeIDs或snowflakes。这种算法由Twitter创建,并用于推文的ID。目前仓储平台生成ID是用的雪花算法修改后的版本。雪花算法几个特性生成的ID分布式唯一和按照时间递增有序,毫秒数在高位,自增序列在低......
  • Unity UGUI的EventSystem(事件系统)组件的介绍及使用
    UnityUGUI的EventSystem(事件系统)组件的介绍及使用1.什么是EventSystem组件?EventSystem是UnityUGUI中的一个重要组件,用于处理用户输入事件,如点击、拖拽、滚动等。它负责将用户输入事件传递给合适的UI元素,并触发相应的事件回调函数。2.EventSystem组件的工作原理EventSystem......
  • 【Azure Key Vault】Key Vault能不能生成DigiCert证书?能不能自动 Rotate 证书呢?
    问题描述因为AzureKeyVault服务上保管的证书可以轻松的与其他Azure服务集成使用,所以需要知道 KeyVault能不能生成DigiCert证书?能不能自动Rotate证书呢? 问题解答AzureKeyVault本身只是一个保管库,它不会颁发证书。但是可以在页面上直接生成CA(CertificateAuthority)......
  • 【Azure Key Vault】Key Vault能不能生成DigiCert证书?能不能自动 Rotate 证书呢?
    问题描述因为AzureKeyVault服务上保管的证书可以轻松的与其他Azure服务集成使用,所以需要知道 KeyVault能不能生成DigiCert证书?能不能自动Rotate证书呢? 问题解答AzureKeyVault本身只是一个保管库,它不会颁发证书。但是可以在页面上直接生成CA(CertificateAuthority)证书,这......
  • 生成函数
    一、从小学数学开始普通型生成函数:\[F(x)=\sum_{n\ge0}a_nx^n\]指数型生成函数:\[F(x)=\sum_{n\ge0}a_n\dfrac{x^n}{n!}\]这是最基础的两种生成函数。普通型生成函数的\(\times\)对应卷积,组合意思为不考虑顺序。指数型生成函数的\(\times\)对应二项卷积......
  • Unity UGUI的RawImage(原始图片)组件的介绍及使用
    UnityUGUI的RawImage(原始图片)组件的介绍及使用1.什么是RawImage组件?RawImage是UnityUGUI中的一个组件,用于显示原始图片。与Image组件不同,RawImage可以直接显示原始图片的像素数据,而不需要经过额外的处理。2.RawImage组件的工作原理RawImage组件通过将原始图片的像素数据直......
  • Visual Studio 启动调试程序 以管理员运行的设置(相比右键管理员运行生成好的exe文件优
    在解决方案文件上,选择添加=>新项目=>应用程序清单文件然后在C#上打开它。在应用程序清单文件上,将“asInvoker”重命名为“requireAdministrator”。生成解决方案。可以管理员权限打开所有应用程序。......
  • 前端拿到后端返回文件流后页面生成excel表格预览(Luckysheet)
    最近项目遇到一个需求,就是本来只需要导出的excel文件,客户要求在前端页面进行预览查看。在查找资料后,决定使用Luckysheet来进行excel文件的预览。1.安装npmiluckyexcel2.html中引入相关js,css文件,可以自己下下来放到本地引入<linkrel='stylesheet'href='https://cdn.......
  • 超详细图文教程:3DS Max 中创建低多边形游戏长剑模型
    推荐:NSDT场景编辑器助你快速搭建可二次开发的3D应用场景在由两部分组成的教程的第一部分中,我向您展示了如何:剑柄建模为剑的护手建模剑刃建模在本教程系列的第二部分中,我将向您展示如何:打开紫外线包装创建紫外线贴图在Photoshop中创建纹理贴图05.UVW去除步骤1......
  • UnityHub AndroidSDKManager在哪
    UnityHubAndroidSDKManager在哪引言作为一名经验丰富的开发者,我很乐意教会你如何在UnityHub中找到AndroidSDKManager。在本文中,我将详细介绍整个过程,并提供每个步骤所需的代码和注释。过程概述在UnityHub中找到AndroidSDKManager可以让我们更方便地管理Android开发所需的SDK和......