Add AacFlEditClip.AnimatesObjectReference

This commit is contained in:
Haï~
2023-10-02 04:53:27 +02:00
parent ecc272ebac
commit 48b71e063a
2 changed files with 37 additions and 0 deletions
+31
View File
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using UnityEditor;
using UnityEngine;
using Object = UnityEngine.Object;
// ReSharper disable once CheckNamespace
namespace AnimatorAsCode.V1
@@ -232,6 +233,12 @@ namespace AnimatorAsCode.V1
return new AacFlSettingCurveColor(Clip, new[] {binding}, true);
}
public AacFlSettingCurveObjectReference AnimatesObjectReference(Component anyComponent, string property)
{
var binding = Internal_BindingFromComponent(anyComponent, property);
return new AacFlSettingCurveObjectReference(Clip, new[] {binding});
}
public EditorCurveBinding BindingFromComponent(Component anyComponent, string propertyName)
{
return Internal_BindingFromComponent(anyComponent, propertyName);
@@ -306,6 +313,30 @@ namespace AnimatorAsCode.V1
}
}
public class AacFlSettingCurveObjectReference
{
private readonly AnimationClip _clip;
private readonly EditorCurveBinding[] _bindings;
public AacFlSettingCurveObjectReference(AnimationClip clip, EditorCurveBinding[] bindings)
{
_clip = clip;
_bindings = bindings;
}
public void WithOneFrame(Object objectReference)
{
foreach (var binding in _bindings)
{
AnimationUtility.SetObjectReferenceCurve(_clip, binding, new[]
{
new ObjectReferenceKeyframe { time = 0f, value = objectReference },
new ObjectReferenceKeyframe { time = 1/60f, value = objectReference }
});
}
}
}
public class AacFlSettingCurveColor
{
private readonly AnimationClip _clip;