Advertisement
Guest User

Untitled

a guest
Nov 19th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.54 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4.  
  5. public class BallFunction : MonoBehaviour {
  6.  
  7.     public GameObject obj;
  8.     public Vector3 sp;
  9.     public Vector3 ep;
  10.     public float T;
  11.     public Rigidbody rb;
  12.     public enum BallType{
  13.         FastBall,
  14.         CurveBall,
  15.         FolkBall,
  16.     }
  17.  
  18.     public BallType bt;
  19.  
  20.     // Use this for initialization
  21.     void Start () {
  22.         rb = obj.GetComponent<Rigidbody> ();
  23.  
  24.     }
  25.     public float ax(float t,BallType bt){
  26.         if (bt == BallType.FastBall) {
  27.             return 0.0f;
  28.         }
  29.         else
  30.             return 0.0f;
  31.     }
  32.     private float ay(float t,BallType bt){
  33.         if (bt == BallType.FastBall) {
  34.             return -9.8f;
  35.         }
  36.         else
  37.             return 0.0f;
  38.     }
  39.     private float az(float t,BallType bt){
  40.         if (bt == BallType.FastBall)
  41.             return 0.0f;
  42.         else
  43.             return 0.0f;
  44.     }
  45.     private float vx(float t,BallType bt){
  46.         if (bt == BallType.FastBall)
  47.             return 9.8f * t;
  48.         else
  49.             return 0.0f;
  50.     }
  51.     private float vy(float t,BallType bt){
  52.         if (bt == BallType.FastBall)
  53.             return -9.8f * t;
  54.         else
  55.             return 0.0f;
  56.     }
  57.     private float vz(float t,BallType bt){
  58.         if (bt == BallType.FastBall)
  59.             return 0.0f;
  60.         else
  61.             return 0.0f;
  62.     }
  63.     private float Vx(float t,BallType bt){
  64.         if (bt == BallType.FastBall)
  65.             return 4.9f * t * t;
  66.         else
  67.             return 0.0f;
  68.     }
  69.     private float Vy(float t,BallType bt){
  70.         if (bt == BallType.FastBall)
  71.             return -4.9f * t * t;
  72.         else
  73.             return 0.0f;
  74.     }
  75.     private float Vz(float t,BallType bt){
  76.         if (bt == BallType.FastBall)
  77.             return 0.0f;
  78.         else
  79.             return 0.0f;
  80.     }
  81.        
  82.  
  83.     public Vector3 FastBall(Vector3 sp, Vector3 ep,float T){
  84.  
  85.         Vector3 vi = new Vector3 ();
  86.         Vector3 dir = ep - sp;
  87.         vi.x = (dir.x - Vx(T,BallType.FastBall)) / T;
  88.         vi.y = (dir.y - Vy(T,BallType.FastBall)) / T;
  89.         vi.z = (dir.z - Vz(T,BallType.FastBall)) / T;
  90.  
  91.         rb.velocity = vi;
  92.         return rb.velocity;
  93.     }
  94.  
  95.     //public Vector3 CurveBall(Vector3 sp, Vector3 ep,float T){
  96.     //  return;
  97.     //}
  98.  
  99.     //public Vector3 FolkBall(Vector3 sp, Vector3 ep,float T){
  100.     //  return;
  101.     //}
  102.  
  103.     public Vector3 Throw(Vector3 sp, Vector3 ep, float T, BallType bt){
  104.         rb.transform.position = sp;
  105.         switch(bt){
  106.         default:
  107.         case BallType.FastBall:
  108.             return FastBall (sp, ep, T);
  109.         case BallType.CurveBall:
  110.             return new Vector3 (0, 0, 0);
  111.         case BallType.FolkBall:
  112.             return new Vector3 (0, 0, 0);
  113.         }
  114.     }
  115.  
  116.  
  117.     // Update is called once per frame
  118.     void Update () {
  119.         if (Input.GetMouseButtonDown (0)) {
  120.             Throw (sp, ep, T, bt);
  121.             rb.velocity += new Vector3 (vx (Time.deltaTime,bt), vy (Time.deltaTime,bt), vz (Time.deltaTime,bt));
  122.         }
  123.     }
  124. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement