void Update() { float x = Input.GetAxis("Horizontal"); float z = Input.GetAxis("Vertical"); Vector3 flatCameraForward = Camera.main.transform.forward; flatCameraForward.y = 0.0f; Vector3 flatCameraRight = Camera.main.transform.right; flatCameraRight.y = 0.0f; Vector3 controlledMovement = flatCameraForward.normalized * z + flatCameraRight.normalized * x; controlledMovement *= moveSpeed; if (isActive) { switch (movementState) { case MovementState.Standard: TurnToDir(controlledMovement.normalized); movement = new Vector3(controlledMovement.x, movement.y, controlledMovement.z); if (iKThrowController.GetThrowState() != IKThrowController.ThrowState.None) { movementState = MovementState.Aiming; } break; case MovementState.Aiming: if (iKThrowController.GetTarget()) { Vector3 targetDir = iKThrowController.GetTarget().position - transform.position; Vector3 flatTargetDir = new Vector3(targetDir.x, 0.0f, targetDir.z); TurnToDir(flatTargetDir.normalized); } movement = new Vector3(controlledMovement.x, movement.y, controlledMovement.z); if (iKThrowController.GetThrowState() == IKThrowController.ThrowState.None) { movementState = MovementState.Standard; } break; } movement += Physics.gravity * Time.deltaTime; cc.Move(movement * Time.deltaTime); } }
void Update() { if (Input.GetMouseButtonDown(0) && ikThrowController.GetThrowState() == IKThrowController.ThrowState.None && ikCatchController.HasCaughtBall()) { ikThrowController.StartAim(); ikThrowController.SetThrowPathState(IKThrowController.ThrowPathState.Straight); playerCameraController.UseAimCamera(); } else if (Input.GetMouseButtonUp(0) && ikThrowController.IsAiming()) { // Throw a ball if the bot has one ikThrowController.ReadyThrow(); playerCameraController.StopUsingAimCamera(); animator.SetTrigger("Throw"); } if (ikThrowController.IsAiming()) { if (Input.GetKeyDown(KeyCode.A)) { ikThrowController.MoveTargetLeft(); } if (Input.GetKeyDown(KeyCode.D)) { ikThrowController.MoveTargetRight(); } if (Input.GetKeyDown(KeyCode.W)) { //target = GetNextTarget(); } if (Input.GetKeyDown(KeyCode.S)) { //target = GetNextTarget(false); } if (Input.GetKeyDown(KeyCode.Q)) { ikThrowController.SetThrowPathState(IKThrowController.ThrowPathState.Straight); } if (Input.GetKeyDown(KeyCode.E)) { ikThrowController.SetThrowPathState(IKThrowController.ThrowPathState.CurveFromLeft); } if (Input.GetKeyDown(KeyCode.R)) { ikThrowController.SetThrowPathState(IKThrowController.ThrowPathState.CurveFromAbove); } if (Input.GetKeyDown(KeyCode.F)) { ikThrowController.SetThrowPathState(IKThrowController.ThrowPathState.CurveFromRight); } } if (Input.GetMouseButtonDown(1)) { // Supply the bot with a new ball Vector3 ballPos = transform.position + transform.forward * 0.5f; ballPos.y += 1.5f; GameObject throwable = Instantiate(ballPrefab, ballPos, Quaternion.identity); } }