Advertisement
LordSolrac2

TheWhip v5a

Nov 15th, 2015
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.52 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3.  
  4. public class ShootGrap : MonoBehaviour{
  5.     Rigidbody rigid;
  6.     GameObject Player;
  7.     LineRenderer line;
  8.     [HideInInspector]public bool Grappled = false;
  9.     bool Returning = false;
  10.     bool ClassicMovement=false;
  11.     Vector3 MousePos;
  12.     SpringJoint Spring;
  13.     public Color col;
  14.  
  15.     void Start(){
  16.         rigid = GetComponent<Rigidbody> ();
  17.         Player = GameObject.FindWithTag ("Player");
  18.         line = gameObject.AddComponent<LineRenderer> ();
  19.         //Spring = Player.gameObject.AddComponent<SpringJoint> ();
  20.         line.SetWidth (.10f,.10f);
  21.         line.SetVertexCount (2);
  22.         line.material.color = col;
  23.         if(col==null){ line.material.color = Color.gray; } //Does this make sense? Null=Black in Inspector
  24.         line.GetComponent<Renderer> ().enabled = true;
  25.     }
  26.  
  27.     void Update(){
  28.         MousePos = new Vector3 (Input.mousePosition.x - Screen.width / 2, Input.mousePosition.y-Screen.height/2, Input.mousePosition.z - Screen.width / 2);
  29.         line.SetPosition (0,transform.position);
  30.         line.SetPosition (1, Player.transform.position);
  31.         print (Vector3.Distance (transform.position, Player.transform.position)+" :: "+transform.forward+" :: ");
  32.  
  33.         if(!Grappled){
  34.             //Move
  35.             Move ();
  36.         }
  37.         if(ClassicMovement==true){
  38.             //FakeSwing ();
  39.         }
  40.     }
  41.  
  42.     void OnCollisionEnter(Collision other){
  43.         OnCollisionStay (other);
  44.     }
  45.  
  46.     void OnCollisionStay(Collision other){
  47.         Grappled = true;
  48.         print ("Collided with::" + other.gameObject.name + " at " + transform.position);
  49.         rigid.isKinematic = true;
  50.         //Classic Movement
  51.         ///*    Disable
  52.         Player.GetComponent<Rigidbody> ().useGravity = false;
  53.         Player.transform.position = Vector3.Lerp (Player.transform.position, transform.position + transform.up * -2, Time.deltaTime * 2);
  54.         //StartCoroutine (GetReadyToSwing ()); 
  55.         //*/
  56.  
  57.         //SpringMovement
  58.         //StartCoroutine (SpringMove ());
  59.     }
  60.  
  61.     void Move(){
  62.         if(!Returning){
  63.             transform.position = Vector3.Lerp (transform.position, new Vector3 (0, MousePos.y, MousePos.x), Time.deltaTime/2);
  64.             //if(transform.position.z>Player.transform.position.z){ transform.forward = Vector3.forward * 1; }
  65.             //if(transform.position.z<Player.transform.position.z){ transform.forward = Vector3.forward *-1; }
  66.         }else{
  67.             transform.position = Vector3.Lerp (transform.position, Player.transform.position, Time.deltaTime * 8);
  68.             if(Vector3.Distance (transform.position,Player.transform.position)<1){
  69.                 //Destroy (Player.GetComponent<SpringJoint>());
  70.                 Destroy (gameObject);
  71.             }
  72.         }
  73.         if(Vector3.Distance (transform.position,Player.transform.position)>50){
  74.             print ("Returning...");
  75.             if(Returning==false){Returning = true;}
  76.         }
  77.     }
  78.  
  79.     IEnumerator SpringMove(){
  80.         yield return new WaitForSeconds (.5f);
  81.         if (Player.GetComponent<SpringJoint> () == null) {
  82.             Spring = Player.AddComponent<SpringJoint> ();
  83.             Spring.anchor = transform.position;
  84.             Spring.maxDistance = 0.05f;
  85.             Spring.minDistance = 0.05f;
  86.         }
  87.     }
  88.  
  89.     IEnumerator GetReadyToSwing(){
  90.         yield return new WaitForSeconds (2);
  91.         if(Vector3.Distance (Player.transform.position,transform.position)<3)
  92.             ClassicMovement = true;
  93.     }
  94.  
  95.     IEnumerator FakeSwing(){
  96.         yield return new WaitForSeconds (2.5f);
  97.         if(Player.transform.position.z>transform.position.z){
  98.             Player.transform.position = Vector3.Lerp (Player.transform.position, new Vector3 (0, 0, transform.position.z * 5), Time.deltaTime);
  99.         }
  100.         if(Player.transform.position.z<transform.position.z){
  101.             Player.transform.position = Vector3.Lerp (Player.transform.position, new Vector3 (0, 0, transform.position.z * 5), Time.deltaTime);
  102.         }
  103.     }
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement