using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEditor.ProjectWindowCallback;
using System.IO;
public class CustomMenuItem
{
[MenuItem ("Assets/Create/AnimationCurveAsset", priority = 203)]
static void CreateAnimatinoCurveAsset ()
{
var icon = EditorGUIUtility.FindTexture ("ScriptableObject Icon");
ProjectWindowUtil.StartNameEditingIfProjectWindowExists (0, ScriptableObject.CreateInstance<DoCreateAninationCurveProfile> (), "New AnimCurve.asset", icon, null);
}
internal static AnimationCurverAsset CreateAnimatinoCurveAssetAtPath (string path)
{
var profile = ScriptableObject.CreateInstance<AnimationCurverAsset> ();
profile.name = Path.GetFileName (path);
AssetDatabase.CreateAsset (profile, path);
return profile;
}
}
class DoCreateAninationCurveProfile : EndNameEditAction
{
public override void Action (int instanceId, string pathName, string resourceFile)
{
AnimationCurverAsset curve = CustomMenuItem.CreateAnimatinoCurveAssetAtPath (pathName);
ProjectWindowUtil.ShowCreatedAsset (curve);
}
}
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEditor.ProjectWindowCallback;
using System.IO;
public class CustomMenuItem
{
[MenuItem ("Assets/Create/AnimationCurveAsset", priority = 203)]
static void CreateAnimatinoCurveAsset ()
{
var icon = EditorGUIUtility.FindTexture ("ScriptableObject Icon");
ProjectWindowUtil.StartNameEditingIfProjectWindowExists (0, ScriptableObject.CreateInstance<DoCreateAninationCurveProfile> (), "New AnimCurve.asset", icon, null);
}
internal static AnimationCurverAsset CreateAnimatinoCurveAssetAtPath (string path)
{
var profile = ScriptableObject.CreateInstance<AnimationCurverAsset> ();
profile.name = Path.GetFileName (path);
AssetDatabase.CreateAsset (profile, path);
return profile;
}
}
class DoCreateAninationCurveProfile : EndNameEditAction
{
public override void Action (int instanceId, string pathName, string resourceFile)
{
AnimationCurverAsset curve = CustomMenuItem.CreateAnimatinoCurveAssetAtPath (pathName);
ProjectWindowUtil.ShowCreatedAsset (curve);
}
}
本文介绍如何在Unity编辑器中通过菜单项自动生成动画曲线资产(AnimationCurveAsset)。利用C#脚本实现了资产的创建与管理,方便用户快速创建并使用动画曲线。
294

被折叠的 条评论
为什么被折叠?



