void Initalize()//初始化 { List <GestureRecognizer> recogniers = new List <GestureRecognizer>(GetComponents <GestureRecognizer>()); DragRecognizer drag = recogniers.Find(r => r.EventMessageName == "OnDrag") as DragRecognizer; DragRecognizer twoFingerDrag = recogniers.Find(r => r.EventMessageName == "OnTwoFingerDrag") as DragRecognizer; PinchRecognizer pinch = recogniers.Find(r => r.EventMessageName == "OnPinch") as PinchRecognizer; //以下是监听器脚本的属性设置 //if (!drag) //{ // drag = gameObject.AddComponent<DragRecognizer>(); // drag.RequiredFingerCount = 1;//手指数量 // drag.IsExclusive = true;//是否根据手指数量触发事件 // drag.MaxSimultaneousGestures = 1;//最多同时触发的事件 // drag.SendMessageToSelection = GestureRecognizer.SelectionType.None; //} //if (!pinch) // pinch = gameObject.AddComponent<PinchRecognizer>(); //if (!twoFingerDrag) //{ // twoFingerDrag = gameObject.AddComponent<DragRecognizer>(); // twoFingerDrag.RequiredFingerCount = 2; // twoFingerDrag.IsExclusive = true; // twoFingerDrag.MaxSimultaneousGestures = 1; // twoFingerDrag.ApplySameDirectionConstraint = true; // twoFingerDrag.EventMessageName = "OnTwoFingerDrag"; //} }
void Start () { dragRecognizer = GetComponent<DragRecognizer>(); tapRecognizer = GetComponent<TapRecognizer>(); dragRecognizer.OnGesture += OnDragGesture; tapRecognizer.OnGesture += OnTapGesture; }
void InstallGestureRecognizers() { List <GestureRecognizer> recogniers = new List <GestureRecognizer>(GetComponents <GestureRecognizer>()); DragRecognizer drag = recogniers.Find(r => r.EventMessageName == "OnDrag") as DragRecognizer; DragRecognizer twoFingerDrag = recogniers.Find(r => r.EventMessageName == "OnTwoFingerDrag") as DragRecognizer; PinchRecognizer pinch = recogniers.Find(r => r.EventMessageName == "OnPinch") as PinchRecognizer; if (!drag) { drag = gameObject.AddComponent <DragRecognizer>(); drag.RequiredFingerCount = 1; drag.IsExclusive = true; drag.MaxSimultaneousGestures = 1; drag.SendMessageToSelection = GestureRecognizer.SelectionType.None; } if (!pinch) { pinch = gameObject.AddComponent <PinchRecognizer>(); } if (!twoFingerDrag) { twoFingerDrag = gameObject.AddComponent <DragRecognizer>(); twoFingerDrag.RequiredFingerCount = 2; twoFingerDrag.IsExclusive = true; twoFingerDrag.MaxSimultaneousGestures = 1; twoFingerDrag.ApplySameDirectionConstraint = false; twoFingerDrag.EventMessageName = "OnTwoFingerDrag"; } }
void Awake() { //下面使用delegate 的方法触发回调比 SendMessage 效率更高。把下面注释掉就是使用SendMessage触发。 //使用delegate方法,回调方法名不能写成跟SendMessage目标方法名一样,否则点一下回调会触发两次 gameObject.AddComponent <ScreenRaycaster>(); fingerDownDetector = gameObject.AddComponent <FingerDownDetector>(); fingerDownDetector.enabled = false; fingerDownDetector.OnFingerDown += FingerDownEventHandler; fingerHoverDetector = gameObject.AddComponent <FingerHoverDetector>(); fingerHoverDetector.enabled = false; fingerHoverDetector.OnFingerHover += FingerHoverEventHandler; fingerMotionDetector = gameObject.AddComponent <FingerMotionDetector>(); fingerMotionDetector.enabled = false; fingerMotionDetector.OnFingerMove += FingerMoveEventHandler; fingerMotionDetector.OnFingerStationary += FingerStationaryEventHandler; fingerUpDetector = gameObject.AddComponent <FingerUpDetector>(); fingerUpDetector.enabled = false; fingerUpDetector.OnFingerUp += FingerUpEventHandler; dragRecognizer = gameObject.AddComponent <DragRecognizer>(); dragRecognizer.enabled = false; //只有在固定finger数的情况下才会触发。 dragRecognizer.IsExclusive = true; dragRecognizer.MoveTolerance = 0; dragRecognizer.OnGesture += FirstFingerDragEventHandler; longPressRecognizer = gameObject.AddComponent <LongPressRecognizer>(); longPressRecognizer.enabled = false; longPressRecognizer.OnGesture += LongPressEventHandler; tapRecognizer = gameObject.AddComponent <TapRecognizer>(); tapRecognizer.enabled = false; tapRecognizer.IsExclusive = true; tapRecognizer.OnGesture += TapEventHandler; doubleTapRecognizer = gameObject.AddComponent <TapRecognizer>(); doubleTapRecognizer.enabled = false; doubleTapRecognizer.RequiredTaps = 2; doubleTapRecognizer.OnGesture += DoubleTapEventHandler; swipeRecognizer = gameObject.AddComponent <SwipeRecognizer>(); swipeRecognizer.enabled = false; swipeRecognizer.OnGesture += SwipeEventHandler; pinchRecognizer = gameObject.AddComponent <PinchRecognizer>(); pinchRecognizer.enabled = false; pinchRecognizer.MinDistance = 0; pinchRecognizer.MinDOT = 0; pinchRecognizer.OnGesture += PinchEventHandler; twistRecognizer = gameObject.AddComponent <TwistRecognizer>(); twistRecognizer.enabled = false; twistRecognizer.OnGesture += TwistEventHandler; }
void Start() { dragRecognizer = GetComponent <DragRecognizer>(); tapRecognizer = GetComponent <TapRecognizer>(); dragRecognizer.OnGesture += OnDragGesture; tapRecognizer.OnGesture += OnTapGesture; }
public override void SetRoot(Transform parent) { base.SetRoot(parent); m_DragRecognizer = GetComponent <DragRecognizer>(); m_PinchRecognizer = GetComponent <PinchRecognizer>(); m_FingerDownDetector = GetComponent <FingerDownDetector>(); m_FingerUpDetector = GetComponent <FingerUpDetector>(); m_DragRecognizer.OnGesture += OnDrag; m_PinchRecognizer.OnGesture += OnPinch; m_FingerDownDetector.OnFingerDown += OnFingerDown; m_FingerUpDetector.OnFingerUp += OnFingerUp; }
void Start() { if (!MessageTarget) { MessageTarget = this.gameObject; } screenRaycaster = GetComponent <ScreenRaycaster>(); if (!screenRaycaster) { screenRaycaster = gameObject.AddComponent <ScreenRaycaster>(); } // Create the FG instance if not already available if (!FingerGestures.Instance) { gameObject.AddComponent <FingerGestures>(); } GameObject fingerEventsNode = CreateChildNode("Finger Event Detectors"); { FingerDown = AddFingerEventDetector <FingerDownDetector>(fingerEventsNode); FingerUp = AddFingerEventDetector <FingerUpDetector>(fingerEventsNode); FingerMotion = AddFingerEventDetector <FingerMotionDetector>(fingerEventsNode); FingerHover = AddFingerEventDetector <FingerHoverDetector>(fingerEventsNode); } GameObject singleFingerGestureNode = CreateChildNode("Single Finger Gestures"); { Drag = AddSingleFingerGesture <DragRecognizer>(singleFingerGestureNode); Tap = AddSingleFingerGesture <TapRecognizer>(singleFingerGestureNode); Swipe = AddSingleFingerGesture <SwipeRecognizer>(singleFingerGestureNode); LongPress = AddSingleFingerGesture <LongPressRecognizer>(singleFingerGestureNode); DoubleTap = AddSingleFingerGesture <TapRecognizer>(singleFingerGestureNode); DoubleTap.RequiredTaps = 2; DoubleTap.EventMessageName = "OnDoubleTap"; } GameObject twoFingerGestures = CreateChildNode("Two-Finger Gestures"); { Pinch = AddTwoFingerGesture <PinchRecognizer>(twoFingerGestures); Twist = AddTwoFingerGesture <TwistRecognizer>(twoFingerGestures); TwoFingerDrag = AddTwoFingerGesture <DragRecognizer>(twoFingerGestures, "OnTwoFingerDrag"); TwoFingerTap = AddTwoFingerGesture <TapRecognizer>(twoFingerGestures, "OnTwoFingerTap"); TwoFingerSwipe = AddTwoFingerGesture <SwipeRecognizer>(twoFingerGestures, "OnTwoFingerSwipe"); TwoFingerLongPress = AddTwoFingerGesture <LongPressRecognizer>(twoFingerGestures, "OnTwoFingerLongPress"); } // we're done, remove component (but not game object) // Destroy( this ); }
protected override void OnRegister() { base.OnRegister(); enableGestureController.AddListener(EnableGestureSignalEvent); mTapRecognizer = gameObject.AddComponent <TapRecognizer> (); mTapRecognizer.UseSendMessage = false; mTapRecognizer.IsExclusive = true; mSwipeRecognizer = gameObject.AddComponent <SwipeRecognizer> (); mSwipeRecognizer.UseSendMessage = false; mSwipeRecognizer.IsExclusive = true; mDragRecognizer = gameObject.AddComponent <DragRecognizer> (); mDragRecognizer.UseSendMessage = false; mDragRecognizer.IsExclusive = true; mTwoFingerDragRecognizer = gameObject.AddComponent <DragRecognizer> (); mTwoFingerDragRecognizer.RequiredFingerCount = 2; mTwoFingerDragRecognizer.UseSendMessage = false; mTwoFingerDragRecognizer.IsExclusive = true; mPinchRecognizer = gameObject.AddComponent <PinchRecognizer> (); mPinchRecognizer.UseSendMessage = false; mPinchRecognizer.IsExclusive = true; mTwistRecognizer = gameObject.AddComponent <TwistRecognizer> (); mTwistRecognizer.UseSendMessage = false; mTwistRecognizer.IsExclusive = true; // mPressRecognizer = gameObject.AddComponent<LongPressRecognizer> (); // mPressRecognizer.UseSendMessage = false; // mPressRecognizer.IsExclusive = true; mFingeDown = gameObject.AddComponent <FingerDownDetector> (); mFingeUp = gameObject.AddComponent <FingerUpDetector> (); mTapRecognizer.OnGesture += OnSceneTap; mDragRecognizer.OnGesture += OnSceneDrag; mPinchRecognizer.OnGesture += OnScenePinch; mSwipeRecognizer.OnGesture += OnSceneSwipe; mTwoFingerDragRecognizer.OnGesture += OnSceneTwoFingerDrag; mTwistRecognizer.OnGesture += OnSceneTwist; mFingeDown.OnFingerDown += OnSceneDown; mFingeUp.OnFingerUp += OnSceneUp; }
private void InstallGestureRecognizers() { //xg_IC = GameObject.Find(str_Intell_Control).GetComponent<XgIntellControl>(); //xg_Pc = GameObject.Find(str_Pic_Control).GetComponent<XgPictrueControl>(); List <GestureRecognizer> recogniers = new List <GestureRecognizer>(GetComponents <GestureRecognizer>()); DragRecognizer drag = recogniers.Find(r => r.EventMessageName == "OnDrag") as DragRecognizer; DragRecognizer twoFingerDrag = recogniers.Find(r => r.EventMessageName == "OnTwoFingerDrag") as DragRecognizer; PinchRecognizer pinch = recogniers.Find(r => r.EventMessageName == "OnPinch") as PinchRecognizer; // check if we need to automatically add a screenraycaster if (OnlyRotateWhenDragStartsOnObject) { ScreenRaycaster raycaster = gameObject.GetComponent <ScreenRaycaster>(); if (!raycaster) { raycaster = gameObject.AddComponent <ScreenRaycaster>(); } } if (!drag) { drag = gameObject.AddComponent <DragRecognizer>(); drag.RequiredFingerCount = 1; drag.IsExclusive = true; drag.MaxSimultaneousGestures = 1; drag.SendMessageToSelection = GestureRecognizer.SelectionType.None; } if (!pinch) { pinch = gameObject.AddComponent <PinchRecognizer>(); } if (!twoFingerDrag) { twoFingerDrag = gameObject.AddComponent <DragRecognizer>(); twoFingerDrag.RequiredFingerCount = 2; twoFingerDrag.IsExclusive = true; twoFingerDrag.MaxSimultaneousGestures = 1; twoFingerDrag.ApplySameDirectionConstraint = true; twoFingerDrag.EventMessageName = "OnTwoFingerDrag"; } }
public void EnableMoveChar() { DragRecognizer dragRcong = m_fingerGesture.GetComponent <DragRecognizer>(); if (dragRcong == null) { dragRcong = m_fingerGesture.AddComponent <DragRecognizer>(); } dragRcong.UseSendMessage = false; if (dragRcong.Raycaster == null) { dragRcong.Raycaster = m_fingerGesture.GetComponent <ScreenRaycaster>(); } LongPressRecognizer longpressRcong = m_fingerGesture.GetComponent <LongPressRecognizer>(); if (longpressRcong == null) { longpressRcong = m_fingerGesture.AddComponent <LongPressRecognizer>(); } longpressRcong.Duration = 0.2f; longpressRcong.UseSendMessage = false; if (longpressRcong.Raycaster == null) { longpressRcong.Raycaster = m_fingerGesture.GetComponent <ScreenRaycaster>(); } FingerGestures.OnGestureEvent += OnSelectNpc; if (m_lstEventHandler != null && !m_lstEventHandler.Contains(OnSelectNpc)) { m_lstEventHandler.Add(OnSelectNpc); } FingerGestures.OnGestureEvent += OnCharMove; if (m_lstEventHandler != null && !m_lstEventHandler.Contains(OnCharMove)) { m_lstEventHandler.Add(OnCharMove); } }
private void SwitchFingerGesture(bool sw) { GameObject gesture = GameObject.FindGameObjectWithTag(Config.TAG_GESTURE); if (gesture != null) { TapRecognizer tr = gesture.GetComponent <TapRecognizer>(); if (tr != null) { tr.UseSendMessage = sw; } LongPressRecognizer lpr = gesture.GetComponent <LongPressRecognizer>(); if (lpr != null) { lpr.UseSendMessage = sw; } } GameObject mainCamera = GameObject.FindGameObjectWithTag(Config.TAG_MAIN_CAMERA); if (mainCamera != null) { CustomTBOrbit ct = mainCamera.GetComponent <CustomTBOrbit>(); if (ct != null) { ct.enabled = sw; } DragRecognizer dr = mainCamera.GetComponent <DragRecognizer>(); if (dr != null) { dr.UseSendMessage = sw; } PinchRecognizer pr = mainCamera.GetComponent <PinchRecognizer>(); if (pr != null) { pr.UseSendMessage = sw; } } }