太郎Work

Unityとかで困ったこと等を残しておきます

Timeline関連メモ

何かあったら追記していきます

Timelineでカスタムトラックを作成したときにcurves編集ボタンを出す条件
f:id:tarowork:20200722180312p:plain

AnimatedParameterUtility.cs内に実装があった
IPlayableBehaviour を実装したクラスのフィールドを必ず持つ必要がある

static FieldInfo[] GetScriptPlayableFields_Internal(IPlayableAsset asset)
{
    return asset.GetType()
        .GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
        .Where(
            f => typeof(IPlayableBehaviour).IsAssignableFrom(f.FieldType) &&                                        // The field is an IPlayableBehaviour
            (f.IsPublic || f.GetCustomAttributes(typeof(SerializeField), false).Any()) &&       // The field is either public or marked with [SerializeField]
            !f.GetCustomAttributes(typeof(NotKeyableAttribute), false).Any() &&                 // The field is not marked with [NotKeyable]
            !f.GetCustomAttributes(typeof(HideInInspector), false).Any() &&                     // The field is not marked with [HideInInspector]
            !f.FieldType.GetCustomAttributes(typeof(NotKeyableAttribute), false).Any())         // The field is not of a type marked with [NotKeyable]
        .ToArray();
}