private void OnEndPan(InputData ID) { if (CurrentMemekoBall.EnableInputLogic == false) // Dont process Input for the player { return; } if (CurrentMemekoBall.FSMCharacter.CurrentState.StateName != Globals.MemekoStates.Selecting) { return; } int layerMask = 1 << Globals.Constants.LayerInputNumber; Ray ray = Camera.main.ScreenPointToRay(ID.InputPosition); RaycastHit hit; if (Physics.Raycast(ray, out hit, Mathf.Infinity, layerMask)) { float deltaDist = (Globals.GameValues.BallColliderSize / 2F); if (directionArrow.getDistance() <= deltaDist) // { CurrentMemekoBall.FSMCharacter.SendMessageToCurrentState("UnSelectPlayer"); } else { Vector3 newDirection = hit.point; newDirection[1] = CurrentMemekoBall.transform.position.y; AttackDirectionInfo directionInfo = new AttackDirectionInfo(initialPanPosition, newDirection, directionArrow.getDistance()); CurrentMemekoBall.FSMCharacter.SendMessageToCurrentState("LaunchBall", directionInfo); } } }
public void LaunchBall(AttackDirectionInfo attackDirection) { CurrentMemeko.AttackDirection = attackDirection; CurrentMemeko.FSMCharacter.RaiseEvent("Launching"); }