private void OnClickEvent(EventManager EM, ClickPositionArgs e) { Ray ray = Camera.main.ScreenPointToRay (e.position); RaycastHit hit; if(this.collider.Raycast(ray, out hit, 10)) { DoClick(e); } }
private void OnHoldClick(EventManager EM, ClickPositionArgs e) { if (isGamePaused()) return; if (currentState.GetType() == typeof(TalkState)){ GUIManager.Instance.CloseInteractionMenu(); } pos = Camera.main.ScreenToWorldPoint(e.position); if (HoldIsTooClose(pos)) { timeSinceLastHold = 1; return; } if (timeSinceLastHold > TIMEBETWEENHOLDMOVES){ pos.z = this.transform.position.z; if (!(currentState is MoveState)){ EnterState(new MoveState(this, pos)); // move normaly } else { ((MoveState) currentState).UpdateGoal(pos); } timeSinceLastHold = 0; } else { timeSinceLastHold += Time.deltaTime; } }
// We want to be able to switch to move at any state when the player clicks private void OnClickToMove(EventManager EM, ClickPositionArgs e) { if (isGamePaused()) return; if (currentState.GetType() == typeof(TalkState)){ GUIManager.Instance.CloseInteractionMenu(); } pos = Camera.main.ScreenToWorldPoint(e.position); pos.z = this.transform.position.z; if (currentState.GetType() == typeof(IdleState) || currentState.GetType().IsSubclassOf(typeof(MoveState))){ EnterState(new MoveState(this, pos, 5f)); // If we are idling of in a movethen do state cancel and move to the new position } else if (currentState.GetType() == typeof(MoveState)){ ((MoveState) currentState).UpdateGoal(pos); } touchParticleEmitter.transform.localPosition = pos; touchParticleEmitter.Play(); }
protected override void DoClick(ClickPositionArgs e) { }
private void OnHoldClick(EventManager EM, ClickPositionArgs e) { Time.timeScale = MAXSPEEDMULTIPLIER; }
protected override void DoClick(ClickPositionArgs e) { EventManager.instance.RiseOnClickOnPlayerEvent(); }
protected abstract void DoClick(ClickPositionArgs e);