// Magica Cloth.
// Copyright (c) MagicaSoft, 2020-2022.
// https://magicasoft.jp
#if UNITY_EDITOR
using UnityEditor;
using UnityEngine;
namespace MagicaCloth
{
///
/// エディター関連ユーティリティ
///
public static class EditUtility
{
///
/// メッシュの最適化状態をビットフラグで返す
/// (Define.OptimizeMeshを参照)
///
///
///
public static int GetOptimizeMesh(Mesh mesh)
{
if (mesh == null)
return 0;
// アセットパス
var path = AssetDatabase.GetAssetPath(mesh);
if (string.IsNullOrEmpty(path))
return 0;
int flag = 0;
// モデルインポーターを取得
var importer = AssetImporter.GetAtPath(path) as ModelImporter;
if (importer)
{
if (importer.optimizeMeshPolygons)
flag |= Define.OptimizeMesh.Unity2019_PolygonOrder;
if (importer.optimizeMeshVertices)
flag |= Define.OptimizeMesh.Unity2019_VertexOrder;
if (flag == 0)
flag = Define.OptimizeMesh.Nothing;
}
else
{
// インポーターが取得できない場合はビルドインのメッシュ
flag |= Define.OptimizeMesh.Unity2019_PolygonOrder;
flag |= Define.OptimizeMesh.Unity2019_VertexOrder;
}
return flag;
}
///
/// メッシュがKeepQuadsでインポートされているか判定する
///
///
///
internal static bool IsKeepQuadsMesh(Mesh mesh)
{
if (mesh == null)
return false;
// アセットパス
var path = AssetDatabase.GetAssetPath(mesh);
if (string.IsNullOrEmpty(path))
return false;
// モデルインポーターを取得
var importer = AssetImporter.GetAtPath(path) as ModelImporter;
if (importer)
return importer.keepQuads;
else
return false;
}
}
}
#endif