Random Animation Clip#
Random / Random Animation Clip
Can Read
Cannot Write
Description#
Picks a random Animation Clip from the list
Code#
using System;
using System.Collections.Generic;
using UnityEngine;
using VisualScript.Icons;
namespace VisualScript.Runtime
{
[Get]
[Title("Random Animation Clip")]
[Category("Random/Animation Clip")]
[Description("Picks a random Animation Clip from the list")]
[Image(typeof(IconAnimationClip), ColorTheme.Type.Teal, typeof(BadgeDice))]
[Keywords("Constant", "Random", "List", "Array")]
[Serializable]
public class TypeAnimationClipRandom : TypeAnimationClip
{
[SerializeField] private List<AnimationClip> m_AnimationClips;
public override AnimationClip GetPreview(GameObject source)
{
int animationClipsCount = this.m_AnimationClips.Count;
if (animationClipsCount == 0) return null;
int index = UnityEngine.Random.Range(0, animationClipsCount);
return this.m_AnimationClips[index];
}
public TypeAnimationClipRandom()
{
this.m_AnimationClips = new List<AnimationClip>();
}
public TypeAnimationClipRandom(AnimationClip[] animationClips)
{
this.m_AnimationClips = new List<AnimationClip>(animationClips);
}
public override AnimationClip Get(Args args)
{
int animationClipsCount = this.m_AnimationClips.Count;
if (animationClipsCount == 0) return null;
int index = UnityEngine.Random.Range(0, animationClipsCount);
return this.m_AnimationClips[index];
}
public override string ToString()
{
return $"Random Animation Clip ({this.m_AnimationClips.Count})";
}
protected override SubscriptionMode Subscription => SubscriptionMode.OnEditorChange;
}
}