public static void DrawASpriteAnimation(ASpriteAnimation asa) { //asa.spriteAnimation = EditorGUILayout.ObjectField("Sprite Animation:", asa.spriteAnimation, typeof(AnimationClip), false) // as AnimationClip; // spriteAnimation = EditorGUILayout.PropertyField(spriteAnimation, "Sprite Animation:", false, GUILayout.MaxWidth(300f)) //as Animation; asa.speed = EditorGUILayout.FloatField("Speed:", asa.speed); asa.speed = AnimObject.EnsureNoNegativeFloat(asa.speed); asa.loop = EditorGUILayout.ToggleLeft("Loop", asa.loop); if (asa.loop) { EditorGUILayout.LabelField("Times To Loop (0 for infinite)"); asa.timesToLoop = EditorGUILayout.IntField(asa.timesToLoop, GUILayout.MaxWidth(100f)); asa.timesToLoop = AnimObject.EnsureNoNegativeInt(asa.timesToLoop); } /* Create some space */ GUILayout.Space(20f); DrawBaseAnimObject(asa); }
public static ASpriteAnimation CreateSpriteAnimationAnimObject(Animator thisAnimator) { //return ASpriteAnimation.CreateInstance<ASpriteAnimation>(); //return new ASpriteAnimation(); ASpriteAnimation result = ScriptableObjectUtility.CreateAsset <ASpriteAnimation>(); result._animator = thisAnimator; return(result); }
/// <summary> /// Unity Editor GUI call, which is called every update frame. /// </summary> void OnGUI() { _animObjectType = (AnimObject.AnimObjectType)EditorGUILayout.EnumPopup("AnimObject Type:", _animObjectType, GUILayout.MaxWidth(300f)); if (_animObjectType == AnimObject.AnimObjectType.AParticleSystem) { ShowParticleSystemVariables(); } else if (_animObjectType == AnimObject.AnimObjectType.ASpriteAnimation) { ShowSpriteAnimationVariables(); } else if (_animObjectType == AnimObject.AnimObjectType.ATween) { ShowTweenVariables(); } GUILayout.Space(100f); /* Show OK/Close buttons */ if (GUILayout.Button("Create New AnimObject")) { switch (_animObjectType) { case AnimObject.AnimObjectType.ATween: ATween newTween = AnimObject.CreateTweenAnimObject(); newTween.speed = tweenSpeed; newTween.direction = tweenDirection; newTween.distance = tweenDistance; SetCommonVariables(newTween); _targetAOH.AddToCollection(newTween); break; case AnimObject.AnimObjectType.ASpriteAnimation: ASpriteAnimation newSpriteAnimation = AnimObject.CreateSpriteAnimationAnimObject(_targetAnimController.GetComponent <Animator>()); newSpriteAnimation.loop = spriteLoop; newSpriteAnimation.speed = spriteSpeed; //newSpriteAnimation.spriteAnimation = spriteAnimation; newSpriteAnimation.timesToLoop = spriteTimesToLoop; SetCommonVariables(newSpriteAnimation); _targetAOH.AddToCollection(newSpriteAnimation); break; case AnimObject.AnimObjectType.AParticleSystem: AParticleSystem newParticleSystem = AnimObject.CreateParticleSystemAnimObject(); newParticleSystem.loop = particleLoop; newParticleSystem.speed = particleSpeed; newParticleSystem.particleSystem = particleSystem; newParticleSystem.direction = particleDirection; newParticleSystem.distance = particleDistance; SetCommonVariables(newParticleSystem); _targetAOH.AddToCollection(newParticleSystem); break; } this.Close(); } if (GUILayout.Button("Cancel")) { this.Close(); } }