Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class BallFunction : MonoBehaviour {
- public GameObject obj;
- public Vector3 sp;
- public Vector3 ep;
- public float T;
- public Rigidbody rb;
- public enum BallType{
- FastBall,
- CurveBall,
- FolkBall,
- }
- public BallType bt;
- // Use this for initialization
- void Start () {
- rb = obj.GetComponent<Rigidbody> ();
- }
- public float ax(float t,BallType bt){
- if (bt == BallType.FastBall) {
- return 0.0f;
- }
- else
- return 0.0f;
- }
- private float ay(float t,BallType bt){
- if (bt == BallType.FastBall) {
- return -9.8f;
- }
- else
- return 0.0f;
- }
- private float az(float t,BallType bt){
- if (bt == BallType.FastBall)
- return 0.0f;
- else
- return 0.0f;
- }
- private float vx(float t,BallType bt){
- if (bt == BallType.FastBall)
- return 9.8f * t;
- else
- return 0.0f;
- }
- private float vy(float t,BallType bt){
- if (bt == BallType.FastBall)
- return -9.8f * t;
- else
- return 0.0f;
- }
- private float vz(float t,BallType bt){
- if (bt == BallType.FastBall)
- return 0.0f;
- else
- return 0.0f;
- }
- private float Vx(float t,BallType bt){
- if (bt == BallType.FastBall)
- return 4.9f * t * t;
- else
- return 0.0f;
- }
- private float Vy(float t,BallType bt){
- if (bt == BallType.FastBall)
- return -4.9f * t * t;
- else
- return 0.0f;
- }
- private float Vz(float t,BallType bt){
- if (bt == BallType.FastBall)
- return 0.0f;
- else
- return 0.0f;
- }
- public Vector3 FastBall(Vector3 sp, Vector3 ep,float T){
- Vector3 vi = new Vector3 ();
- Vector3 dir = ep - sp;
- vi.x = (dir.x - Vx(T,BallType.FastBall)) / T;
- vi.y = (dir.y - Vy(T,BallType.FastBall)) / T;
- vi.z = (dir.z - Vz(T,BallType.FastBall)) / T;
- rb.velocity = vi;
- return rb.velocity;
- }
- //public Vector3 CurveBall(Vector3 sp, Vector3 ep,float T){
- // return;
- //}
- //public Vector3 FolkBall(Vector3 sp, Vector3 ep,float T){
- // return;
- //}
- public Vector3 Throw(Vector3 sp, Vector3 ep, float T, BallType bt){
- rb.transform.position = sp;
- switch(bt){
- default:
- case BallType.FastBall:
- return FastBall (sp, ep, T);
- case BallType.CurveBall:
- return new Vector3 (0, 0, 0);
- case BallType.FolkBall:
- return new Vector3 (0, 0, 0);
- }
- }
- // Update is called once per frame
- void Update () {
- if (Input.GetMouseButtonDown (0)) {
- Throw (sp, ep, T, bt);
- rb.velocity += new Vector3 (vx (Time.deltaTime,bt), vy (Time.deltaTime,bt), vz (Time.deltaTime,bt));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement