public override void Copy(IControl c, ControlCopyFlags flags)
    {
        base.Copy(c);
        if (!(c is UIStateToggleBtn3D))
        {
            return;
        }
        UIStateToggleBtn3D uIStateToggleBtn3D = (UIStateToggleBtn3D)c;

        if ((flags & ControlCopyFlags.Settings) == ControlCopyFlags.Settings)
        {
            this.defaultState = uIStateToggleBtn3D.defaultState;
        }
        if ((flags & ControlCopyFlags.State) == ControlCopyFlags.State)
        {
            this.prevTransition = uIStateToggleBtn3D.prevTransition;
            if (Application.isPlaying)
            {
                this.SetToggleState(uIStateToggleBtn3D.StateNum);
            }
        }
        if ((flags & ControlCopyFlags.Invocation) == ControlCopyFlags.Invocation)
        {
            this.scriptWithMethodToInvoke = uIStateToggleBtn3D.scriptWithMethodToInvoke;
            this.methodToInvoke           = uIStateToggleBtn3D.methodToInvoke;
            this.whenToInvoke             = uIStateToggleBtn3D.whenToInvoke;
            this.delay = uIStateToggleBtn3D.delay;
        }
        if ((flags & ControlCopyFlags.Sound) == ControlCopyFlags.Sound)
        {
            this.soundToPlay = uIStateToggleBtn3D.soundToPlay;
        }
    }
    public override void Copy(IControl c, ControlCopyFlags flags)
    {
        base.Copy(c);

        if (!(c is UIStateToggleBtn3D))
        {
            return;
        }

        UIStateToggleBtn3D b = (UIStateToggleBtn3D)c;

        if ((flags & ControlCopyFlags.Settings) == ControlCopyFlags.Settings)
        {
            defaultState = b.defaultState;
        }

        if ((flags & ControlCopyFlags.State) == ControlCopyFlags.State)
        {
            prevTransition = b.prevTransition;

            if (Application.isPlaying)
            {
                SetToggleState(b.StateNum);
            }
        }

        if ((flags & ControlCopyFlags.Invocation) == ControlCopyFlags.Invocation)
        {
            scriptWithMethodToInvoke = b.scriptWithMethodToInvoke;
            methodToInvoke           = b.methodToInvoke;
            whenToInvoke             = b.whenToInvoke;
            delay = b.delay;
        }

        if ((flags & ControlCopyFlags.Sound) == ControlCopyFlags.Sound)
        {
            soundToPlay = b.soundToPlay;
        }
    }