void OnSelectedAnchorsDataChanged(SelectObjectDragToolAction.IAnchor newData) { if (newData == null) { if (m_DraggablePad.isActiveAndEnabled) { Dispatcher.Dispatch(SetStatusMessageWithType.From(new StatusMessageData { text = k_InstructionDragPoint, type = StatusMessageType.Instruction })); } else { Dispatcher.Dispatch(SetStatusMessageWithType.From(new StatusMessageData { text = k_InstructionStart, type = StatusMessageType.Instruction })); } return; } Dispatcher.Dispatch(ClearStatusAction.From(true)); Dispatcher.Dispatch(ClearStatusAction.From(false)); // Create Point if (!m_OnDrag) { if (!m_CurrentCursor.activeSelf) { m_AnchorSelection.OnStateDataChanged(newData, m_CurrentCursor); return; } } // Drag Existing Point m_AnchorSelection.OnStateDataChanged(newData); }
void OnPickDragAsyncCallback(List <Tuple <GameObject, RaycastHit> > results) { if (results == null) { return; } var selectedObjects = results.Select(x => x.Item1).Where(x => x.layer != MetadataFilter.k_OtherLayer); var selectedAnchorsContext = selectedObjects.Select(r => r.GetComponent <MarkerAnchorSelectionContext>()).Where(g => g != null).ToList(); SelectObjectDragToolAction.IAnchor selectedAnchor = null; if (selectedAnchorsContext.Count > 0) { selectedAnchor = selectedAnchorsContext[0].LastContext.selectedAnchor; } Dispatcher.Dispatch(SelectObjectDragToolAction.From(selectedAnchor)); OnAnchorDataChanged?.Invoke(selectedAnchor); }
public void OnStateDataChanged(SelectObjectDragToolAction.IAnchor selectedAnchor, GameObject cursor = null) { if (cursor != null && selectedAnchor != null) { SetCursorUI(selectedAnchor, cursor); m_Anchor = selectedAnchor; m_AnchorCursor = cursor; if (!cursor.activeSelf) { cursor.SetActive(true); } if (!m_VREnableGetter()) { m_DraggablePad.gameObject.SetActive(true); } } else if ((m_VREnableGetter() || m_DraggablePad.button.IsActive()) && m_AnchorCursor) { SetCursorUI(selectedAnchor, m_AnchorCursor); } }
public void ResetSelector() { m_AnchorCursor = null; m_Anchor = null; }
void SetCursorUI(SelectObjectDragToolAction.IAnchor selectedAnchor, GameObject cursor) { cursor.transform.position = selectedAnchor.position; cursor.transform.forward = selectedAnchor.normal; }