private void Awake()
        {
            if (instance == null)
            {
                instance = this;
            }
            else if (instance != this)
            {
                Destroy(this);
                return;
            }

#if UNITY_5_4_OR_NEWER
            SceneManager.sceneLoaded += LevelWasLoaded;
#endif

            gameObject.hideFlags = HideFlags.HideInHierarchy;
            DontDestroyOnLoad(gameObject);

            updateDPI();

            StopAllCoroutines();
            StartCoroutine(lateAwake());

            touchPointListPool.WarmUp(2);
            intListPool.WarmUp(3);

#if TOUCHSCRIPT_DEBUG
            DebugMode = true;
#endif
        }
        private void Awake()
        {
            if (instance == null)
            {
                instance = this;
            }
            else if (instance != this)
            {
                Destroy(this);
                return;
            }

            gameObject.hideFlags = HideFlags.HideInHierarchy;
            DontDestroyOnLoad(gameObject);

            _processTarget      = processTarget;
            _processTargetBegan = processTargetBegan;
            _updateBegan        = doUpdateBegan;
            _updateMoved        = doUpdateMoved;
            _updateEnded        = doUpdateEnded;
            _updateCancelled    = doUpdateCancelled;

            gestureListPool.WarmUp(5);
            touchListPool.WarmUp(10);
            transformListPool.WarmUp(5);
        }