Exemplo n.º 1
0
    public void OnTrackableStateChanged(
        TrackableBehaviour.Status previousStatus,
        TrackableBehaviour.Status newStatus)
    {
        m_PreviousStatus = previousStatus;
        m_NewStatus      = newStatus;

        Debug.Log("Trackable " + mTrackableBehaviour.TrackableName +
                  " " + mTrackableBehaviour.CurrentStatus +
                  " -- " + mTrackableBehaviour.CurrentStatusInfo);

        if (newStatus == TrackableBehaviour.Status.DETECTED ||
            newStatus == TrackableBehaviour.Status.TRACKED ||
            newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED)
        {
            TargetEvent?.Invoke(true, gameObject);
            OnTrackingFound(true);
        }
        else if (previousStatus == TrackableBehaviour.Status.TRACKED &&
                 newStatus == TrackableBehaviour.Status.NO_POSE)
        {
            TargetEvent?.Invoke(false, gameObject);
            OnTrackingFound(false);
        }
        else
        {
            // For combo of previousStatus=UNKNOWN + newStatus=UNKNOWN|NOT_FOUND
            // Vuforia is starting, but tracking has not been lost or found yet
            // Call OnTrackingLost() to hide the augmentations
            TargetEvent?.Invoke(false, gameObject);
            OnTrackingFound(false);
        }
    }
Exemplo n.º 2
0
 private static void _trigger <TArgs>(EventTarget target, TArgs args, List <Transform> trans)
 {
     for (var i = 0; i < trans.Count; i++)
     {
         TargetEvent.Trigger(target.name, trans[i].gameObject, args);
     }
 }
Exemplo n.º 3
0
    void Update()
    {
        //マウスを画面中心に固定
        Cursor.lockState = CursorLockMode.Locked;
        //マウス座標の取得
        Vector3 pos = Input.mousePosition;

        pos.z = 90f;
        Vector3 rayDirection = Camera.main.ScreenToWorldPoint(pos);

        Vector3 rayOrigin = Camera.main.ViewportToWorldPoint(Vector3.zero);

        //レイ構文
        RaycastHit hit;

        if (Physics.Raycast(rayOrigin, rayDirection, out hit, rayDistance))
        {
            if (hit.collider.gameObject.layer == LayerMask.NameToLayer("Target"))
            {
                targetEvent            = hit.collider.gameObject.GetComponent <TargetEvent>();
                targetEvent.IsWatching = true;
            }

            if (hit.collider.gameObject.layer == LayerMask.NameToLayer("Wall"))
            {
                if (targetEvent != null)
                {
                    targetEvent.IsWatching = false;
                }
            }
        }

        Debug.DrawRay(transform.position, rayDirection * rayDistance, Color.green, 5, false);
    }
 public void OnTargetEventRaised(TargetEvent e)
 {
     if (TargetEventRaised != null)
     {
         Invoke(() => TargetEventRaised(this, new TargetEventArgs(e)));
     }
 }
Exemplo n.º 5
0
        public static Task <bool> OnTargetEvent(TMSRemote.TMSRemoteClient client, TargetEvent response)
        {
            switch (response.EventCase)
            {
            case TargetEvent.EventOneofCase.Added:
            {
                var target = response.Added;
                Console.WriteLine("Target " +
                                  target.Fields.NumericFields.GetValueOrDefault("TgtID", double.NaN) + ", " +
                                  target.Fields.StringFields.GetValueOrDefault("Portfolio", "-") + ", " +
                                  target.Fields.StringFields.GetValueOrDefault("Instrument", "-") + ", " +
                                  target.Fields.NumericFields.GetValueOrDefault("Side", double.NaN) + ", " +
                                  target.Fields.NumericFields.GetValueOrDefault("TgtQty", double.NaN) + ", " +
                                  target.Fields.NumericFields.GetValueOrDefault("FillQty", double.NaN)
                                  );
                break;
            }

            case TargetEvent.EventOneofCase.FeedStatus:
            {
                if (response.FeedStatus == FeedStatus.InitialStateReceived)
                {
                    return(Task.FromResult(false));
                }
                break;
            }

            default:
                break;
            }
            return(Task.FromResult(true));
        }
Exemplo n.º 6
0
            private static void Trigger <TArgs>(EventType eventType, EventTarget target, TArgs args)
            {
                if ((eventType & EventType.Global) == EventType.Global)
                {
                    TargetEvent.Trigger(target.name, args);
                }

                if ((eventType & EventType.Target) == EventType.Target)
                {
                    TargetEvent.Trigger(target, args);
                }

                List <Transform> _objs = new List <Transform>();

                if ((eventType & EventType.TargetAndParent) == EventType.TargetAndParent)
                {
                    ((GameObject)target.target).GetParents(_objs);

                    _trigger(target, args, _objs);
                }

                if ((eventType & EventType.TargetAndOffspring) == EventType.TargetAndOffspring)
                {
                    ((GameObject)target.target).GetOffspring(_objs);

                    _trigger(target, args, _objs);
                }
                else if ((eventType & EventType.TargetAndChild) == EventType.TargetAndChild)
                {
                    ((GameObject)target.target).GetOffspring(_objs, 1);

                    _trigger(target, args, _objs);
                }
            }
Exemplo n.º 7
0
        public IActionResult AddAdminMenu(AdminMenu model)
        {
            if (!ModelState.IsValid)
            {
                string messages = string.Join("; ", ModelState.Values
                                              .SelectMany(x => x.Errors)
                                              .Select(x => x.ErrorMessage));

                tip.Message = messages;
                return(Json(tip));
            }
            //判断
            if (AdminMenu.FindCount(AdminMenu._.MenuKey == model.MenuKey, null, null, 0, 0) > 0)
            {
                tip.Message = "菜单KEY已经存在,请填写其他的!";
            }
            IList <TargetEvent> listevent = TargetEvent.FindAll(null, TargetEvent._.Rank.Asc(), null, 0, 0);

            string[] eventkeys           = Request.Form["eventkey"];
            List <AdminMenuEvent> listme = new List <AdminMenuEvent>();

            if (eventkeys != null && eventkeys.Length > 0)
            {
                foreach (string s in eventkeys)
                {
                    if (Utils.IsInt(s))
                    {
                        TargetEvent te = listevent.FirstOrDefault(t => t.Id == int.Parse(s));
                        if (te != null)
                        {
                            AdminMenuEvent tmp = new AdminMenuEvent();
                            tmp.EventId   = te.Id;
                            tmp.EventKey  = te.EventKey;
                            tmp.EventName = te.EventName;
                            tmp.MenuKey   = model.MenuKey;
                            listme.Add(tmp);
                        }
                    }
                }
            }
            model.Insert();
            if (listme != null && listme.Count > 0)
            {
                listme.ForEach(s =>
                {
                    s.MenuId = model.Id;
                });
                listme.Insert();
            }
            tip.Status    = JsonTip.SUCCESS;
            tip.Message   = "添加后台菜单成功";
            tip.ReturnUrl = "close";
            return(Json(tip));
        }
Exemplo n.º 8
0
        public IActionResult AddAdminMenu()
        {
            //获取上级栏目
            IList <AdminMenu> list = AdminMenu.GetListTree(0, -1, true, false);

            ViewBag.ListTree = list;
            IList <TargetEvent> listevent = TargetEvent.FindAll(TargetEvent._.IsDisable != 1, TargetEvent._.Rank.Asc(), null, 0, 0);

            ViewBag.ListEvent = listevent;
            return(View());
        }
Exemplo n.º 9
0
        public void can_duck_type_an_event()
        {
            var          target = new TargetEvent();
            var          proxy  = Duck.Cast <IEventer>(target);
            EventHandler hander = (sender, args) => { };

            proxy.SimpleEvent += hander;
            Assert.AreEqual(1, target.count);
            proxy.SimpleEvent -= hander;
            Assert.AreEqual(0, target.count);
        }
Exemplo n.º 10
0
        public IActionResult AddEventKey(IFormCollection fc)
        {
            TargetEvent entity = new TargetEvent();

            entity.EventKey  = fc["EventKey"];
            entity.EventName = fc["EventName"];
            string rank = fc["Rank"];

            if (string.IsNullOrWhiteSpace(rank) || !Utils.IsInt(rank))
            {
                rank = "0";
            }
            entity.Rank = int.Parse(rank);
            if (string.IsNullOrWhiteSpace(fc["IsDisable"]) || fc["IsDisable"] != "1")
            {
                entity.IsDisable = 0;
            }
            else
            {
                entity.IsDisable = 1;
            }

            if (string.IsNullOrWhiteSpace(entity.EventKey))
            {
                tip.Message = "请填写事件KEY";
                return(Json(tip));
            }
            if (string.IsNullOrWhiteSpace(entity.EventName))
            {
                tip.Message = "请填写事件名称";
                return(Json(tip));
            }
            entity.EventKey = entity.EventKey.ToLower();

            if (TargetEvent.FindCount(TargetEvent._.EventKey == entity.EventKey.ToLower(), null, null, 0, 0) > 0)
            {
                tip.Message = "事件key已经存在,请重新填写一个";
                return(Json(tip));
            }
            entity.Insert();
            tip.Status    = JsonTip.SUCCESS;
            tip.Message   = "添加事件成功";
            tip.ReturnUrl = "close";

            Core.Admin.WriteLogActions("添加事件详情(id:" + entity.Id + ");");

            return(Json(tip));
        }
Exemplo n.º 11
0
        //修改菜单
        public IActionResult EditAdminMenu(int id)
        {
            AdminMenu entity = AdminMenu.Find(AdminMenu._.Id == id);

            if (entity == null)
            {
                return(EchoTipPage("系统找不到本记录!"));
            }
            //获取上级栏目
            IList <AdminMenu> list = AdminMenu.GetListTree(0, -1, true, false);

            ViewBag.ListTree = list;
            IList <TargetEvent> listevent = TargetEvent.FindAll(TargetEvent._.IsDisable != 1, TargetEvent._.Rank.Asc(), null, 0, 0);

            ViewBag.ListEvent = listevent;

            return(View(entity));
        }
Exemplo n.º 12
0
        public IActionResult GetEventKey(string keyword, int page = 1, int limit = 20)
        {
            int  numPerPage, currentPage, startRowIndex;
            long totalCount = 0;

            numPerPage    = limit;
            currentPage   = page;
            startRowIndex = (currentPage - 1) * numPerPage;
            Expression ex = TargetEvent._.Id > 0;

            if (!string.IsNullOrWhiteSpace(keyword))
            {
                ex &= TargetEvent._.EventName.Contains(keyword);
            }


            IList <TargetEvent> list = TargetEvent.FindAll(ex, TargetEvent._.Id.Asc(), null, startRowIndex, numPerPage);

            totalCount = TargetEvent.FindCount(ex, TargetEvent._.Id.Asc(), null, startRowIndex, numPerPage);
            Admin.WriteLogActions($"查看后台事件列表(keyword:{keyword};page:{page};limit:{limit});");
            return(Content(JsonConvert.SerializeObject(new { total = totalCount, rows = list.ToList() }), "text/json"));
        }
Exemplo n.º 13
0
        public IActionResult EventKey()
        {
            IList <TargetEvent> list = TargetEvent.FindAll(TargetEvent._.Id > 0, TargetEvent._.Id.Asc(), null, 0, 0);

            return(View(list));
        }
Exemplo n.º 14
0
        public IActionResult EditAdminMenu(AdminMenu model)
        {
            if (!ModelState.IsValid)
            {
                string messages = string.Join("; ", ModelState.Values
                                              .SelectMany(x => x.Errors)
                                              .Select(x => x.ErrorMessage));
                tip.Message = messages;
                return(Json(tip));
            }
            if (model.Id <= 0)
            {
                tip.Message = "错误参数传递!";
                return(Json(tip));
            }
            AdminMenu entity = AdminMenu.Find(AdminMenu._.Id == model.Id);

            if (entity == null)
            {
                tip.Message = "系统找不到本记录!";
                return(Json(tip));
            }
            //赋值
            entity.MenuName = model.MenuName;
            //如果key修改了。判断是否有存在
            if (entity.MenuKey != model.MenuKey)
            {
                if (AdminMenu.FindCount(AdminMenu._.MenuKey == model.MenuKey & AdminMenu._.Id != entity.Id, null, null, 0, 0) > 0)
                {
                    tip.Message = "您修改的菜单KEY已经存在,请填写其他的!";
                    return(Json(tip));
                }
                entity.MenuKey = model.MenuKey;
            }
            entity.Link      = model.Link;
            entity.IsHide    = model.IsHide;
            entity.ClassName = model.ClassName;
            entity.Rank      = model.Rank;
            if (entity.PId != model.PId)
            {
                //重新获取level和location
                entity.Level    = AdminMenu.GetNewLevel(model.PId);
                entity.Location = AdminMenu.GetNewLocation(model.PId);
            }
            entity.PId = model.PId;
            entity.Update();

            //处理权限
            IList <AdminMenuEvent> oldevent = AdminMenuEvent.FindAll(AdminMenuEvent._.MenuId == entity.Id, null, null, 0, 0);

            //所有的权限
            IList <TargetEvent> listevent = TargetEvent.FindAll(TargetEvent._.Id > 0, TargetEvent._.Rank.Asc(), null, 0, 0);

            //新的权限
            string[] eventkeys           = Request.Form["eventkey"];
            List <AdminMenuEvent> listme = new List <AdminMenuEvent>();

            if (eventkeys != null && eventkeys.Length > 0)
            {
                foreach (string s in eventkeys)
                {
                    if (Utils.IsInt(s))
                    {
                        TargetEvent te = listevent.FirstOrDefault(t => t.Id == int.Parse(s));
                        if (te != null)
                        {
                            AdminMenuEvent tmp = new AdminMenuEvent();
                            tmp.EventId   = te.Id;
                            tmp.EventKey  = te.EventKey;
                            tmp.EventName = te.EventName;
                            tmp.MenuKey   = model.MenuKey;
                            tmp.MenuId    = entity.Id;
                            listme.Add(tmp);
                        }
                    }
                }
            }

            //判断是否在旧的里面
            listme.ForEach(s =>
            {
                var oe = oldevent.FirstOrDefault(o => o.EventId == s.EventId);
                //如果是旧列表存在,则删掉旧列表里面的,然后更新自己
                if (oe != null)
                {
                    s.Id = oe.Id;
                    s.Update();
                    oldevent.Remove(oe);
                }
                else
                {
                    //如果不存在,则是新增的。直接新增处理
                    s.Insert();
                }
            });
            //如果还有,则删除旧列表里面的
            if (oldevent != null && oldevent.Count > 0)
            {
                oldevent.Delete();
            }

            tip.Status    = JsonTip.SUCCESS;
            tip.Message   = "编辑后台菜单成功";
            tip.ReturnUrl = "close";
            return(Json(tip));
        }
Exemplo n.º 15
0
 public TargetEventArgs(TargetEvent e)
 {
     EventType = e;
 }
Exemplo n.º 16
0
 public static void Unregister(string eventName, GameObject target, Delegate handler)
 {
     TargetEvent.Unregister(new EventTarget(eventName, target), handler);
 }
Exemplo n.º 17
0
 public static void Register <TArgs>(GameObject target, string eventName, Action <TArgs> handler)
 {
     TargetEvent.Register(new EventTarget(eventName, target), handler);
 }
 /// <summary>
 /// Received when the target for this combat controller has been updated.
 /// </summary>
 /// <param name="e"></param>
 void OnTargetEvent(TargetEvent e)
 {
     this.currentTarget = e.target;
 }
Exemplo n.º 19
0
 /// <summary>
 /// Instructs the specified player to enter cursor targeting mode, invoking the specified handler once the player selects something.
 /// </summary>
 /// <param name="player">The player who should enter selection mode.</param>
 /// <param name="handler">The lamda/method to invoke once this player selects something.</param>
 /// <param name="validTargets">The type of objects that are valid for selection. ObjectTypes is a flags enum, so multiple types may be specified using the OR operator (ObjectTypes.Creature | ObjectTypes.Placeable).</param>
 /// <param name="cursorType">The type of cursor to show if the player is hovering over a valid target.</param>
 /// <param name="badTargetCursor">The type of cursor to show if the player is hovering over an invalid target.</param>
 public void EnterTargetMode(NwPlayer player, TargetEvent handler, ObjectTypes validTargets = ObjectTypes.All, MouseCursor cursorType = MouseCursor.Magic, MouseCursor badTargetCursor = MouseCursor.NoMagic)
 {
     NWScript.EnterTargetingMode(player, (int)validTargets, (int)cursorType, (int)badTargetCursor);
     awaitingTargetActions[player] = handler;
 }
Exemplo n.º 20
0
 public void Dispose()
 {
     TargetEvent.RemoveEventHandler(TargetProperty, Handler);
 }
Exemplo n.º 21
0
    public override void Process(string sessionName)
    {
        List <TrackerEvent> events = Tracker.instance.GetTestEvents(sessionName);

        //System.TimeSpan[] targetTimes = new System.TimeSpan[NUM_TARGETS];

        System.DateTime starTime  = System.DateTime.MinValue;
        System.TimeSpan totalTime = System.TimeSpan.Zero;

        float totalPunt   = 0;
        int   numDisparos = 0;
        int   numAciertos = 0;
        int   numFallos   = 0;



        foreach (TrackerEvent e in events)
        {
            if (e.eventType == EventType.SESSION_START)
            {
                starTime = e.time;
            }
            else if (e.eventType == EventType.SESSION_END)
            {
                totalTime = (e.time - starTime);
            }
            //Si es un evento de tipo AIM, lo procesamos
            if (e.eventType == EventType.TARGET)
            {
                TargetEvent targetEvent = (TargetEvent)e;

                if (targetEvent.targetEventType == TargetEventType.DESTROYED)
                {
                    totalPunt += targetEvent.punt;
                    numAciertos++;
                }
                else
                {
                    numFallos++;
                }
            }
            else if (e.eventType == EventType.SHOOT)
            {
                numDisparos++;
            }
        }

        Debug.Log("Total time: " + totalTime.ToString(@"mm\:ss\.fff") + " / " + totalTime.ToString(@"mm\:ss\.fff"));
        Debug.Log("Total punt: " + totalPunt);
        float completion = ((float)(numAciertos) / (numAciertos + numFallos));
        float hit        = ((float)(numAciertos) / (numDisparos));

        Debug.Log("Completion% " + completion * 100 + "%");
        Debug.Log("Hit% " + hit * 100 + "%");
        float precisionScore = hit * completion * 100;

        Debug.Log("Precision score: " + precisionScore + "%");

        /*
         * Diparas 1. Aciertas 1. Spawnean 10. -> 10%
         * Disparas 10. Aciertas 5. Spawnean 10 ->50%
         * DIsparas 10. Aciertas 1. Spawnean 10 -> 10%
         *
         * Acertados / Disparados.
         *
         *
         */
        float aimTime = totalPunt;

        if (aimTime >= maxScore)
        {
            aimTime = 100;
        }
        else if (aimTime > midScore)
        {
            aimTime = 100 - 50.0f * ((aimTime - midScore) / (maxScore - midScore));
        }
        else if (aimTime > 0)
        {
            aimTime = 50.0f * (aimTime / midScore);
        }
        else
        {
            aimTime = 0;
        }

        Debug.Log("Aim Time Score: " + aimTime);

        float totalScore = aimTime * (Velocity / 100.0f) + precisionScore * (Precision / 100.0f);

        Debug.Log("Total Score: " + totalScore);
        GameObject.FindObjectOfType <GUIManager>().SetNota(totalScore);

        if (GameObject.FindObjectOfType <GameSessionManager>() != null && GameSessionManager.Instance.GetCompleteTest())
        {
            FindObjectOfType <AnalysisManager>().addStadistic(stat.precision, precisionScore);
            FindObjectOfType <AnalysisManager>().addStadistic(stat.aimTime, aimTime);
            FindObjectOfType <AnalysisManager>().addStadistic(stat.reactionTime, totalScore);
            if (tracking)
            {
                FindObjectOfType <AnalysisManager>().addStadistic(stat.tracking, totalScore);
            }
        }
    }