/// <summary> /// Subscribes a play object to all relevant gestures - tap, pan, /// press, release /// </summary> /// <param name="go">Game object</param> /// <param name="draggable">If set to <c>true</c> is a draggable object.</param> public void AddAndSubscribeToGestures(GameObject go, bool draggable, bool storypage) { // add a tap gesture component if one doesn't exist TapGesture tg = go.GetComponent <TapGesture>(); if (tg == null) { tg = go.AddComponent <TapGesture>(); } // checking for null anyway in case adding the component didn't work if (tg != null) { tg.Tapped += tappedHandler; // subscribe to tap events Logger.Log(go.name + " subscribed to tap events"); } // if this object is draggable, handle pan events if (draggable) { // add pan gesture component if one doesn't exist yet TransformGesture trg = go.GetComponent <TransformGesture>(); if (trg == null) { trg = go.AddComponent <TransformGesture>(); trg.Type = TouchScript.Gestures.Base.TransformGestureBase.TransformType.Translation; } if (trg != null) { trg.CombineTouchesInterval = 0.2f; trg.TransformStarted += transformStartedHandler; trg.Transformed -= transformedHandler; trg.TransformCompleted += transformCompleteHandler; Logger.Log(go.name + " subscribed to pan events"); } // make sure we do have a transformer if we're draggable Transformer tr = go.GetComponent <Transformer>(); if (tr == null) { tr = go.AddComponent <Transformer>(); } } PressGesture prg = go.GetComponent <PressGesture>(); if (prg == null) { prg = go.AddComponent <PressGesture>(); } if (prg != null) { prg.Pressed += pressedHandler; Logger.Log(go.name + " subscribed to press events"); } ReleaseGesture rg = go.GetComponent <ReleaseGesture>(); if (rg == null) { rg = go.AddComponent <ReleaseGesture>(); } if (rg != null) { rg.Released += releasedHandler; Logger.Log(go.name + " subscribed to release events"); } // if this is a story page, handle swipe/flick events if (storypage) { // add flick gesture component if one doesn't exist yet FlickGesture fg = go.GetComponent <FlickGesture>(); if (fg == null) { fg = go.AddComponent <FlickGesture>(); } if (fg != null) { fg.Flicked += flickHandler; fg.AddFriendlyGesture(tg); fg.MinDistance = 0.4f; fg.FlickTime = 0.5f; fg.MovementThreshold = 0.1f; Logger.Log(go.name + " subscribed to flick events"); } } }