private void Update() { if (aiBrain.targetPosition != Vector3.zero && aiBrain.CanShoot) { Vector3 velocity = TrajectoryHelper.CalculateVelocity(aiBrain.targetPosition, transform.position, shootTime); Shoot(velocity); aiBrain.targetPosition = Vector3.zero; } }
private Vector3 LaunchBall() { Vector3 Velocity; RaycastHit hit; Ray rayToTarget = cam.ScreenPointToRay(Input.mousePosition); bool isHit = Physics.Raycast(rayToTarget, out hit, shootRange, shootLayer); if (isHit) { cursor.transform.position = hit.point; Velocity = TrajectoryHelper.CalculateVelocity(hit.point, transform.position, shootTime); } else { Vector3 raycastLastPoint = transform.position + rayToTarget.direction * shootRange; Velocity = TrajectoryHelper.CalculateVelocity(raycastLastPoint, transform.position, shootTime); } cursor.SetActive(isHit); Visualize(Velocity); return(Velocity); }