internal void AddPointer(PlayerPointer pointer) { if (pointer) { _pointers.Add(pointer); } }
public override void Process() { for (var i = 0; i < _pointers.Count; i++) { PlayerPointer pointer = _pointers[i]; Player player = pointer.Player; InputDevice controller = player.Controller; if (controller == null) { continue; } // Move the controller pointer.Move(new Vector2(controller[_horizontal], controller[_vertical])); ProcessPointerSubmit(pointer, i, controller); CharacterChange(player, controller); } }
void CharacterChange(PlayerPointer pointer, Player player, InputDevice controller) { if (!player.SelectedCharacter) { return; } if (controller.GetControl(_changeLeft).WasPressed) { player.Pallete--; } if (controller.GetControl(_changeRight).WasPressed) { player.Pallete++; } if (controller.GetControl(_cancel).WasPressed) { } }
void ProcessPointerSubmit(PlayerPointer pointer, int i, InputDevice controller) { GetPointerData(i, out _eventData, true); _eventData.position = Camera.main.WorldToScreenPoint(pointer.transform.position); EventSystem.current.RaycastAll(_eventData, m_RaycastResultCache); RaycastResult result = FindFirstRaycast(m_RaycastResultCache); ProcessMove(_eventData); var success = false; _eventData.clickCount = 0; if (controller[_submit].WasPressed) { _eventData.pressPosition = _eventData.position; _eventData.clickCount = 1; _eventData.clickTime = Time.unscaledTime; _eventData.pointerPressRaycast = result; if (m_RaycastResultCache.Count > 0) { _eventData.selectedObject = result.gameObject; _eventData.pointerPress = ExecuteEvents.ExecuteHierarchy(result.gameObject, _eventData, ExecuteEvents.submitHandler); _eventData.rawPointerPress = result.gameObject; foreach (IPlayerClickable clickable in result.gameObject.GetComponentsInParent <IPlayerClickable>()) { clickable.Click(pointer.Player); } success = true; } } if (!success) { _eventData.clickCount = 0; _eventData.eligibleForClick = false; _eventData.pointerPress = null; _eventData.rawPointerPress = null; } }
internal void RemovePointer(PlayerPointer pointer) { _pointers.Remove(pointer); }