protected virtual void ShootBall() { characterAudio.loop = true; characterAudio.clip = null; characterAudio.Stop(); characterRb.AddForce(Vector3.up * jumpForce, ForceMode.Impulse); ball.transform.position = characterRb.transform.position + (lookingRight ? new Vector3(0.45f, 1.8f, 0.01f) : new Vector3(-0.45f, 1.8f, 0.01f)); if (transform.position.y >= jumpLimit) { characterAudio.PlayOneShot(jumpSound, 0.5f); Rigidbody ballRb = ball.GetComponent<Rigidbody>(); //BallController ballController = ball.GetComponent<BallController>(); Vector3 distanceVec3 = hoop.transform.position - ball.transform.position; ball.transform.parent = null; ballController.EnableRagdoll(); //ballRb.AddForce((Vector3.up * 8 + Vector3.right * 5) * transform.position.y, ForceMode.Impulse); ballRb.AddForce((distanceVec3 + Vector3.up * 6), ForceMode.Impulse); hasBall = false; ballController.setIsCarried(false); } }
public virtual void Reset() { GetComponent<Rigidbody>().velocity = Vector3.zero; characterAudio.loop = true; characterAudio.clip = null; characterAudio.Stop(); transform.position = startPosition; transform.rotation = Quaternion.Euler(startRotation); BallController ballController = ball.GetComponent<BallController>(); ball.transform.parent = null; ballController.EnableRagdoll(); hasBall = false; ballController.setIsCarried(false); if (transform.rotation.y < 0) { lookingRight = false; } else { lookingRight = true; } isGameActive = true; }
//protected void ChaseBall() //{ // float distanceVecx = Math.Round(ball.transform.position.x - transform.position.x, 1) == 0.0f ? 0.0f : ball.transform.position.x - transform.position.x > 0.0f ? 1.0f : -1.0f; // float distanceVecz = Math.Round(ball.transform.position.z - transform.position.z, 1) == 0.0f ? 0.0f : ball.transform.position.z - transform.position.z > 0.0f ? 1.0f : -1.0f; // if (distanceVecx < 0 && lookingRight) // { // transform.RotateAround(transform.position, transform.up, 180.0f); // lookingRight = false; // } else if (distanceVecx > 0 && !lookingRight) // { // transform.RotateAround(transform.position, transform.up, 180.0f); // lookingRight = true; // } // //Vector3 distanceVec3 = Vector3.right * distanceVecx + Vector3.forward * distanceVecz; // Vector3 distanceVec3 = new Vector3(distanceVecx, 0, distanceVecz); // transform.Translate(distanceVec3 * Time.deltaTime * 3, Space.World); //} protected void Pass() { characterAudio.loop = true; characterAudio.clip = null; characterAudio.Stop(); //Vector3 distanceVec3 = teamMate.transform.position - transform.position; float directionForward = teamMate.transform.position.x > transform.position.x ? 1.0f: -1.0f; float directionUpward = teamMate.transform.position.z > transform.position.z ? 1.0f : -1.0f; float distanceVecx = Math.Abs(teamMate.transform.position.x - transform.position.x) < 8.0f ? (teamMate.transform.position.x - transform.position.x) : 8.0f; float distanceVecz = Math.Abs(teamMate.transform.position.z - transform.position.z) < 4.0f ? (teamMate.transform.position.z - transform.position.z) : 4.0f; Rigidbody ballRb = ball.GetComponent<Rigidbody>(); BallController ballController = ball.GetComponent<BallController>(); if (directionForward == 1.0f) { if (!lookingRight) { transform.RotateAround(transform.position, transform.up, 180f); lookingRight = true; } } else if (directionForward == -1.0f) { if (lookingRight) { transform.RotateAround(transform.position, transform.up, 180f); lookingRight = false; } } ball.transform.position = characterRb.transform.position + (directionForward == 1.0f ? new Vector3(0.55f, 1.2f, 0.01f) : new Vector3(-0.55f, 1.2f, 0.01f)); ball.transform.parent = null; ballController.EnableRagdoll(); Vector3 forceVec = new Vector3(directionForward * distanceVecx, 2.0f, directionUpward * distanceVecz) * 1.5f; ballRb.AddForce(forceVec,ForceMode.Impulse); hasBall = false; ballController.setIsCarried(false); }
protected override void ShootBall() { characterAudio.loop = true; characterAudio.clip = null; characterAudio.Stop(); characterAudio.PlayOneShot(jumpSound, 0.5f); Rigidbody ballRb = ball.GetComponent <Rigidbody>(); BallController ballController = ball.GetComponent <BallController>(); Vector3 distanceVec3 = hoop.transform.position - ballRb.transform.position; ball.transform.parent = null; ballController.EnableRagdoll(); //ballRb.AddForce((Vector3.up * 8 + Vector3.right * 5) * transform.position.y, ForceMode.Impulse); ballRb.AddForce((distanceVec3 + Vector3.up * 6), ForceMode.Impulse); hasBall = false; ballController.setIsCarried(false); }