void CheckSelections(MoverioTouchpadEventArgs mieArgs) { Collider[] targets = GetAffectedTargets(); SelectionControllerEventArgs args = new SelectionControllerEventArgs(mieArgs); args.Device = ControllerType.HandGesture; args.IsConflict = targets.Length > 1; args.PointerPx = RightCamera.WorldToScreenPoint(gameObject.transform.position); args.PointerPos = gameObject.transform.position; args.PointerQuat = gameObject.transform.rotation; foreach (Collider target in targets) { target.SendMessage("Selected", args, SendMessageOptions.DontRequireReceiver); } if (targets.Length == 0 || args.IsConflict) { SelectionEventArgs seArgs = new SelectionEventArgs(args); seArgs.Type = SelectionEventArgs.SelectionEventType.Selected; MessageBroker.BroadcastAll("OnSelected", seArgs); } }
void OnTouchStarted(MoverioTouchpadEventArgs args) { if (!RunLocal) { return; } CheckSelections(args); }
public SelectionControllerEventArgs(MoverioTouchpadEventArgs mieArgs) { EventTime = System.DateTime.Now; Device = ControllerType.TouchPad; MoverioEvent = mieArgs; PointerPx = Vector3.zero; PointerPos = Vector3.zero; PointerQuat = Quaternion.Euler(0, 0, 0); Tag = String.Empty; if (MoverioEvent != null) { PointerPx = MoverioEvent.Type == MoverioTouchpadEventType.TouchStarted ? MoverioEvent.Origin : MoverioEvent.Last; } }
void CheckSelections(MoverioTouchpadEventArgs mieArgs) { Collider target = GetFirstAffectedTarget(); SelectionControllerEventArgs args = new SelectionControllerEventArgs(mieArgs); args.Device = ControllerType.GyroMouse; args.IsConflict = false; args.PointerPx = GetScreenPoint(); args.PointerPos = EPSONcamera.transform.position; args.PointerQuat = EPSONcamera.transform.rotation; if (target != null) { target.SendMessage("Selected", args, SendMessageOptions.DontRequireReceiver); } else { SelectionEventArgs seArgs = new SelectionEventArgs(args); seArgs.Type = SelectionEventArgs.SelectionEventType.Selected; MessageBroker.BroadcastAll("OnSelected", seArgs); } }