예제 #1
0
    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);
    }
예제 #2
0
    public static ASpriteAnimation CreateSpriteAnimationAnimObject(Animator thisAnimator)
    {
        //return ASpriteAnimation.CreateInstance<ASpriteAnimation>();
        //return new ASpriteAnimation();
        ASpriteAnimation result = ScriptableObjectUtility.CreateAsset <ASpriteAnimation>();

        result._animator = thisAnimator;
        return(result);
    }
예제 #3
0
    /// <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();
        }
    }