Ejemplo n.º 1
0
 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);
 }
Ejemplo n.º 2
0
    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);
        }
    }
Ejemplo n.º 3
0
    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();
        }
    }
Ejemplo n.º 4
0
    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
    }
Ejemplo n.º 5
0
    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;
                    }
                }
            }
        }
    }
Ejemplo n.º 6
0
    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);
    }