SW 중심대학 OSS GIT 서버
박건태, 이승준, 고기완, 이준호
새로운 배포
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
using JetBrains.Annotations;using UnityEngine;using UnityEngine.Playables;using UnityEngine.Timeline;
namespace UnityEditor.Timeline{ [CustomTimelineEditor(typeof(AnimationPlayableAsset)), UsedImplicitly] class AnimationPlayableAssetEditor : ClipEditor { public static readonly string k_NoClipAssignedError = LocalizationDatabase.GetLocalizedString("No animation clip assigned"); public static readonly string k_LegacyClipError = LocalizationDatabase.GetLocalizedString("Legacy animation clips are not supported"); static readonly string k_MotionCurveError = LocalizationDatabase.GetLocalizedString("You are using motion curves without applyRootMotion enabled on the Animator. The root transform will not be animated"); static readonly string k_RootCurveError = LocalizationDatabase.GetLocalizedString("You are using root curves without applyRootMotion enabled on the Animator. The root transform will not be animated");
/// <inheritdoc/>
public override ClipDrawOptions GetClipOptions(TimelineClip clip) { var clipOptions = base.GetClipOptions(clip); var asset = clip.asset as AnimationPlayableAsset;
if (asset != null) clipOptions.errorText = GetErrorText(asset, clip.parentTrack as AnimationTrack, clipOptions.errorText);
if (clip.recordable) clipOptions.highlightColor = DirectorStyles.Instance.customSkin.colorAnimationRecorded;
return clipOptions; }
/// <inheritdoc />
public override void OnCreate(TimelineClip clip, TrackAsset track, TimelineClip clonedFrom) { var asset = clip.asset as AnimationPlayableAsset; if (asset != null && asset.clip != null && asset.clip.legacy) { asset.clip = null; Debug.LogError("Legacy Animation Clips are not supported"); } }
string GetErrorText(AnimationPlayableAsset animationAsset, AnimationTrack track, string defaultError) { if (animationAsset.clip == null) return k_NoClipAssignedError; if (animationAsset.clip.legacy) return k_LegacyClipError; if (animationAsset.clip.hasMotionCurves || animationAsset.clip.hasRootCurves) { if (track != null && track.trackOffset == TrackOffset.Auto) { var animator = track.GetBinding(TimelineEditor.inspectedDirector); if (animator != null && !animator.applyRootMotion && !animationAsset.clip.hasGenericRootTransform) { if (animationAsset.clip.hasMotionCurves) return k_MotionCurveError; return k_RootCurveError; } } }
return defaultError; } }}
|