public void CheckOnClick(Vector3 position, string layerName) { if (!GameController.instance.IsGameSceneEnabled) { return; } int layerTouchable = LayerMask.GetMask(layerName); RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(position); if (Physics.Raycast(ray, out hit, Mathf.Infinity, layerTouchable)) { if (hit.transform.GetComponent <ITouchable>() != null && GameController.instance.IsGameSceneEnabled) { ITouchable objectTouched = hit.transform.GetComponent <ITouchable>(); HelpPanel panel = GameObject.FindObjectOfType <HelpPanel>(); if (!panel.IsPointerOverPanel()) { panel.SetPanel(objectTouched); } } else if (hit.transform.GetComponent <IMultitouchable>() != null && GameController.instance.IsGameSceneEnabled) { IMultitouchable multitouchable = hit.transform.GetComponent <IMultitouchable>(); multitouchable.MultiTouch(); } else { return; } } }
protected override void OnRender(DrawingContext drawingContext) { IMultitouchable element = AdornedElement as IMultitouchable; if (element != null) { SolidColorBrush renderBrush = new SolidColorBrush(Colors.Red); renderBrush.Opacity = 0.2; Pen renderPen = new Pen(new SolidColorBrush(Colors.Navy), 1.5); double renderRadius = 5.0; foreach (ContactInfoModel model in element.Contacts) { // Draw a circle at each corner. drawingContext.DrawEllipse(renderBrush, renderPen, model.Center, renderRadius, renderRadius); DrawText(drawingContext, string.Format("Id: {0}\r\nX: {1}\r\nY: {2}\r\nDelta: {3}\r\nDisplacement: {4}\r\nTarget: {5}", model.Id, model.Center.X.ToString("N3"), model.Center.Y.ToString("N3"), model.Delta, model.Displacement, model.Target != null ? model.Target.GetHashCode().ToString() : "None"), model.Center); } } }