Пример #1
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();
        }
    }