Touch problems after new scene load.

Ok, I am totally stumped here. I have searched everywhere before posting.

I am using the joystick script that is in the standard mobile assets as a touchpad with four touchpads under a graphic as a d-pad. Two more for buttons.

Everything works fine when on the first level (or world map) but when i load any new level the touchpad acts whacky.

Issue... When i slide from left too right the touchpad releases, and the new one is pressed..no problem. However, after i load a new scene everything changes. If I slide from one two another the initial touch is not released until i completley release from the screen. (It should be noted that every scene works fine if i start from that scene. The issue happens on the remote and on an actual build)

The closest I can get is that i am touching one of them when i load a new level (push up to enter door)

I have tried disabling the joystick before loading a new scene... even added a scene loader in between to make sure there is a fresh start.

Has anyone had any issues of touch being messed up in between scenes?

Here is my touchpad.. loader script snippet.

the main function is called from a collider.

 function enterLevel(levelDoor : int)
    {

        var enterDoor = false;
        var touchPad = upButton;

        if ( !touchPad.IsFingerDown() )
            canEnter = true;

        if ( canEnter && touchPad.IsFingerDown() )
        {
            enterDoor = true;
            canEnter = false;
        }

        if ( enterDoor )
        {

            PlayerPrefs.SetInt("loadLevel", levelDoor);
             yield WaitForSeconds(.5);
             controls.SetActiveRecursively(false);
        Application.LoadLevel ("levelLoader");
        }

You can see it removes the controls to make sure a touch isn't carrying over.

I didnt inlcude the touchpad script since its just standard assets and i don't think it is part of the problem. I dont even know if my loader is part of the problem.

Sounds like your joystick/pad are not re-instantiating properly.

If you have handled this in Awake() this might be the cause. To reinstantiate you could call Awake() from the script you use to instantiate them.