コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】メッシュを細分化できる「unity-subdivision-surface」紹介

はじめに

「unity-subdivision-surface」を Unity プロジェクトに導入することで
メッシュを細分化できるようになります

使用例

f:id:baba_s:20180519194209p:plain

f:id:baba_s:20180519194224p:plain

使い方

using Subdiv;
using UnityEngine;

public class Example : MonoBehaviour
{
    private void Start()
    {
        var filter = GetComponent<MeshFilter>();
        var mesh = filter.mesh;
        var source  = SubdivisionSurface.Weld
        (
            mesh        : mesh,
            threshold   : float.Epsilon,
            bucketStep  : mesh.bounds.size.x
        );
        var result = SubdivisionSurface.Subdivide
        (
            source  : source,
            details : 1,        // 細かく分割する場合、値を増やす
            weld    : false     // 滑らかにする場合 true
        );
        filter.sharedMesh = result;
    }
}

上記のようなスクリプトを記述することで使用できます