private void AddEvent(EasyTouch.EventName ev, EasyTouchTrigger t) { EasyTouchTrigger.EasyTouchReceiver r = new EasyTouchTrigger.EasyTouchReceiver(); r.enable = true; r.restricted = true; r.eventName = ev; r.gameObject = t.gameObject; t.receivers.Add(r); }
private bool IsRecevier4(EasyTouch.EventName evnt) { int result = receivers.FindIndex( delegate(EasyTouchTrigger.EasyTouchReceiver e){ return(e.eventName == evnt); } ); if (result > -1) { return(true); } else { return(false); } }
public void AddTrigger(EasyTouch.EventName ev) { EasyTouchReceiver r = new EasyTouchReceiver(); r.enable = true; r.restricted = true; r.eventName = ev; r.gameObject = null; r.otherReceiver = false; r.name = "New trigger"; receivers.Add(r); if (Application.isPlaying) { UnsubscribeEasyTouchEvent(); SubscribeEasyTouchEvent(); } }
public override void OnInspectorGUI() { EasyTouchTrigger t = (EasyTouchTrigger)target; string[] eventNames = Enum.GetNames(typeof(EasyTouch.EventName)); eventNames[0] = "Add new event"; #region Event properties GUILayout.Space(5f); for (int i = 1; i < eventNames.Length; i++) { EasyTouch.EventName ev = (EasyTouch.EventName)Enum.Parse(typeof(EasyTouch.EventName), eventNames[i]); int result = t.receivers.FindIndex( delegate(EasyTouchTrigger.EasyTouchReceiver e){ return(e.eventName == ev); } ); if (result > -1) { TriggerInspector(ev, t); } } #endregion #region Add Event GUI.backgroundColor = Color.green; int index = EditorGUILayout.Popup("", 0, eventNames, "Button"); GUI.backgroundColor = Color.white; if (index != 0) { //AddEvent((EasyTouch.EventName)Enum.Parse( typeof(EasyTouch.EventName), eventNames[index]),t ); t.AddTrigger((EasyTouch.EventName)Enum.Parse(typeof(EasyTouch.EventName), eventNames[index])); EditorPrefs.SetBool(eventNames[index], true); } #endregion }
private void TriggerScheduler(EasyTouch.EventName evnt, Gesture gesture) { foreach (EasyTouchReceiver receiver in receivers) { if (receiver.enable && receiver.eventName == evnt) { if ( (receiver.restricted && ((gesture.pickedObject == gameObject && receiver.triggerType == ETTType.Object3D) || (gesture.pickedUIElement == gameObject && receiver.triggerType == ETTType.UI))) || (!receiver.restricted && (receiver.gameObject == null || ((receiver.gameObject == gesture.pickedObject && receiver.triggerType == ETTType.Object3D) || (gesture.pickedUIElement == receiver.gameObject && receiver.triggerType == ETTType.UI)))) ) { GameObject sender = gameObject; if (receiver.otherReceiver && receiver.gameObjectReceiver != null) { sender = receiver.gameObjectReceiver; } switch (receiver.parameter) { case ETTParameter.None: sender.SendMessage(receiver.methodName, SendMessageOptions.DontRequireReceiver); break; case ETTParameter.ActionTime: sender.SendMessage(receiver.methodName, gesture.actionTime, SendMessageOptions.DontRequireReceiver); break; case ETTParameter.Delta_Pinch: sender.SendMessage(receiver.methodName, gesture.deltaPinch, SendMessageOptions.DontRequireReceiver); break; case ETTParameter.Delta_Position: sender.SendMessage(receiver.methodName, gesture.deltaPosition, SendMessageOptions.DontRequireReceiver); break; case ETTParameter.DeltaTime: sender.SendMessage(receiver.methodName, gesture.deltaTime, SendMessageOptions.DontRequireReceiver); break; case ETTParameter.Finger_Id: sender.SendMessage(receiver.methodName, gesture.fingerIndex, SendMessageOptions.DontRequireReceiver); break; case ETTParameter.Gesture: sender.SendMessage(receiver.methodName, gesture, SendMessageOptions.DontRequireReceiver); break; case ETTParameter.PickedObject: if (gesture.pickedObject != null) { sender.SendMessage(receiver.methodName, gesture.pickedObject, SendMessageOptions.DontRequireReceiver); } break; case ETTParameter.PickedUIElement: if (gesture.pickedUIElement != null) { sender.SendMessage(receiver.methodName, gesture.pickedObject, SendMessageOptions.DontRequireReceiver); } break; case ETTParameter.Position: sender.SendMessage(receiver.methodName, gesture.position, SendMessageOptions.DontRequireReceiver); break; case ETTParameter.Start_Position: sender.SendMessage(receiver.methodName, gesture.startPosition, SendMessageOptions.DontRequireReceiver); break; case ETTParameter.Swipe_Length: sender.SendMessage(receiver.methodName, gesture.swipeLength, SendMessageOptions.DontRequireReceiver); break; case ETTParameter.Swipe_Type: sender.SendMessage(receiver.methodName, gesture.swipe, SendMessageOptions.DontRequireReceiver); break; case ETTParameter.Swipe_Vector: sender.SendMessage(receiver.methodName, gesture.swipeVector, SendMessageOptions.DontRequireReceiver); break; case ETTParameter.Touch_Count: sender.SendMessage(receiver.methodName, gesture.touchCount, SendMessageOptions.DontRequireReceiver); break; case ETTParameter.Twist_Anlge: sender.SendMessage(receiver.methodName, gesture.twistAngle, SendMessageOptions.DontRequireReceiver); break; } } } } }
private void TriggerInspector(EasyTouch.EventName ev, EasyTouchTrigger t) { bool folding = EditorPrefs.GetBool(ev.ToString()); folding = HTGuiTools.BeginFoldOut(ev.ToString(), folding, false); EditorPrefs.SetBool(ev.ToString(), folding); if (folding) { HTGuiTools.BeginGroup(); int i = 0; while (i < t.receivers.Count) { if (t.receivers[i].eventName == ev) { GUI.color = new Color(0.8f, 0.8f, 0.8f, 1); HTGuiTools.BeginGroup(5); GUI.color = Color.white; EditorGUILayout.BeginHorizontal(); t.receivers[i].enable = HTGuiTools.Toggle("Enable", t.receivers[i].enable, 55, true); t.receivers[i].name = EditorGUILayout.TextField("", t.receivers[i].name, GUILayout.MinWidth(130)); // Delete GUILayout.FlexibleSpace(); if (HTGuiTools.Button("X", Color.red, 19)) { t.receivers[i] = null; t.receivers.RemoveAt(i); EditorGUILayout.EndHorizontal(); return; } EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); // Restriced //t.receivers[i].restricted = HTGuiTools.Toggle("Restricted to gameobject",t.receivers[i].restricted,true); t.receivers[i].triggerType = (EasyTouchTrigger.ETTType)EditorGUILayout.EnumPopup("Testing on", t.receivers[i].triggerType); EditorGUILayout.BeginHorizontal(); t.receivers[i].restricted = EditorGUILayout.Toggle("", t.receivers[i].restricted, (GUIStyle)"Radio", GUILayout.Width(15)); EditorGUILayout.LabelField("Only if on me (requiered a collider)"); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); t.receivers[i].restricted = !EditorGUILayout.Toggle("", !t.receivers[i].restricted, (GUIStyle)"Radio", GUILayout.Width(15)); EditorGUILayout.LabelField("All the time, or other object"); EditorGUILayout.EndHorizontal(); if (!t.receivers[i].restricted) { t.receivers[i].gameObject = (GameObject)EditorGUILayout.ObjectField("Other object", t.receivers[i].gameObject, typeof(GameObject), true); } EditorGUILayout.Space(); EditorGUILayout.Space(); t.receivers[i].otherReceiver = HTGuiTools.Toggle("Other receiver", t.receivers[i].otherReceiver, true); if (t.receivers[i].otherReceiver) { t.receivers[i].gameObjectReceiver = (GameObject)EditorGUILayout.ObjectField("Receiver", t.receivers[i].gameObjectReceiver, typeof(GameObject), true); } // Method Name EditorGUILayout.BeginHorizontal(); t.receivers[i].methodName = EditorGUILayout.TextField("Method name", t.receivers[i].methodName); // Methode helper string[] mNames = null; if (!t.receivers[i].otherReceiver || (t.receivers[i].otherReceiver && t.receivers[i].gameObjectReceiver == null)) { mNames = GetMethod(t.gameObject); } else if (t.receivers[i].otherReceiver && t.receivers[i].gameObjectReceiver != null) { mNames = GetMethod(t.receivers[i].gameObjectReceiver); } int index = EditorGUILayout.Popup("", -1, mNames, "Button", GUILayout.Width(20)); if (index > -1) { t.receivers[i].methodName = mNames[index]; } EditorGUILayout.EndHorizontal(); // Parameter t.receivers[i].parameter = (EasyTouchTrigger.ETTParameter)EditorGUILayout.EnumPopup("Parameter to send", t.receivers[i].parameter); HTGuiTools.EndGroup(); } i++; } } else { HTGuiTools.BeginGroup(); } HTGuiTools.EndGroup(false); if (!GUILayout.Toggle(true, "+", "ObjectPickerTab")) { t.AddTrigger(ev); } GUILayout.Space(5f); }