1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- using TriLibCore.Mappers;
- using TriLibCore.Utils;
- using UnityEditor;
- using UnityEngine;
- namespace TriLibCore.Editor
- {
- public class MapperContextActions : MonoBehaviour
- {
- [MenuItem("Assets/Create Mapper Instance")]
- private static void CreateInstance()
- {
- var monoScript = Selection.activeObject as MonoScript;
- if (monoScript != null)
- {
- var scriptableObject = ScriptableObject.CreateInstance(monoScript.GetClass());
- var assetPath = AssetDatabase.GetAssetPath(monoScript);
- var directory = FileUtils.GetFileDirectory(assetPath);
- var name = FileUtils.GetFilenameWithoutExtension(assetPath);
- AssetDatabase.CreateAsset(scriptableObject, $"{directory}/{name}.asset");
- AssetDatabase.SaveAssets();
- }
- }
- [MenuItem("Assets/Create Mapper Instance", true)]
- private static bool Validate()
- {
- if (Selection.activeObject is MonoScript monoScript)
- {
- var @class = monoScript.GetClass();
- return
- typeof(AnimationClipMapper).IsAssignableFrom(@class) ||
- typeof(MaterialMapper).IsAssignableFrom(@class) ||
- typeof(TextureMapper).IsAssignableFrom(@class) ||
- typeof(HumanoidAvatarMapper).IsAssignableFrom(@class) ||
- typeof(RootBoneMapper).IsAssignableFrom(@class) ||
- typeof(LipSyncMapper).IsAssignableFrom(@class) ||
- typeof(UserPropertiesMapper).IsAssignableFrom(@class) ||
- typeof(ExternalDataMapper).IsAssignableFrom(@class);
- }
- return false;
- }
- }
- }
|