以下の内容はhttps://baba-s.hatenablog.com/entry/2020/07/10/090000より取得しました。


【Unity】スプライトからメッシュを生成するスクリプト

ソースコード

using System;
using System.Linq;
using UnityEngine;

public static class SpriteUtils
{
    public static Mesh SpriteToMesh( Sprite sprite )
    {
        var mesh = new Mesh();

        mesh.SetVertices( Array.ConvertAll( sprite.vertices, x => ( Vector3 ) x ).ToList() );
        mesh.SetUVs( 0, sprite.uv.ToList() );
        mesh.SetTriangles( Array.ConvertAll( sprite.triangles, x => ( int ) x ), 0 );

        return mesh;
    }
}

使用例

using UnityEditor;
using UnityEngine;

public static class Example
{
    [MenuItem( "Tools/Hpge" )]
    private static void Hoge()
    {
        var sprite = AssetDatabase.LoadAssetAtPath<Sprite>( "..." );
        var mesh   = SpriteUtils.SpriteToMesh( sprite );

        AssetDatabase.CreateAsset( mesh, "Assets/result.mesh" );
    }
}

f:id:baba_s:20200708103445p:plain

例えば上記のようなスプライトからメッシュを生成すると

f:id:baba_s:20200708103505p:plain

このようなメッシュが生成されます

例えば生成したメッシュを Particle System で使用することで
Overdraw を抑えることができます

参考サイト様




以上の内容はhttps://baba-s.hatenablog.com/entry/2020/07/10/090000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14