Advertisement
Guest User

Untitled

a guest
Dec 17th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.00 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4.  
  5. public class NewCar : MonoBehaviour
  6. {
  7. // Car values
  8. [SerializeField] private float movementForce = 18000f; // Force used to move the car
  9. private float speedForce;
  10. [SerializeField] private float maxSpeedValue;
  11. [SerializeField] private float accelerationPower;
  12. [Space]
  13.  
  14. // Hook values
  15. [SerializeField] private GameObject hookPrefab; // Prefab of the hook that is going to be thrown
  16. [SerializeField] private Transform[] hookPoint = new Transform[2]; // Hook points relative positions
  17. GameObject travellingHook; // The hook that got isntantiated | To be removed later when the key is released
  18. private bool hookThrown = false;
  19.  
  20.  
  21.  
  22. // Components / Scripts
  23. DistanceJoint3D distanceJoint;
  24. ConstantForce myConstantForce;
  25.  
  26. private float multiplier;
  27.  
  28. void Start()
  29. {
  30. multiplier = 1;
  31. distanceJoint = this.GetComponent<DistanceJoint3D>();
  32. myConstantForce = this.GetComponent<ConstantForce>();
  33. }
  34.  
  35. void Update()
  36. {
  37. // Movement | Forward and backward forces for the car
  38. if (Input.GetKey(KeyCode.W))
  39. {
  40. if (multiplier<maxSpeedValue)
  41. multiplier += (float)(accelerationPower/100 * Time.deltaTime);
  42. //myConstantForce.relativeForce = new Vector3(0, 0, movementForce * multiplier);
  43. //Debug.Log(myConstantForce.relativeForce);
  44. speedForce =Mathf.Pow(movementForce,multiplier);
  45. }
  46. else if (Input.GetKey(KeyCode.S))
  47. {
  48. if (multiplier < maxSpeedValue)
  49. multiplier += (float)(accelerationPower / 100 * Time.deltaTime);
  50. speedForce = -Mathf.Pow(movementForce, multiplier);
  51. }
  52. else
  53. {
  54. multiplier = 1;
  55. speedForce = 0;
  56. }
  57.  
  58. myConstantForce.relativeForce = new Vector3(0, 0, speedForce);
  59.  
  60. // Hook launch
  61. if (Input.GetKeyDown(KeyCode.LeftArrow) && !hookThrown)
  62. {
  63. distanceJoint.relativePosition = hookPoint[1];
  64. AssignHook(hookPoint[0], -1);
  65. }
  66. else if (Input.GetKeyDown(KeyCode.RightArrow) && !hookThrown)
  67. {
  68. distanceJoint.relativePosition = hookPoint[0];
  69. AssignHook(hookPoint[1], 1);
  70. }
  71. else if (Input.GetKeyUp(KeyCode.LeftArrow) || Input.GetKeyUp(KeyCode.RightArrow))
  72. {
  73. distanceJoint.RemoveHook();
  74. Destroy(travellingHook);
  75.  
  76. hookThrown = false;
  77. }
  78. }
  79.  
  80. private void AssignHook(Transform _launchPosition, int _carSide)
  81. {
  82. travellingHook = Instantiate(hookPrefab, _launchPosition.position, Quaternion.Euler(this.transform.eulerAngles));
  83. HookTraveller travellingHookController = travellingHook.GetComponent<HookTraveller>();
  84. travellingHookController.carJoint = distanceJoint;
  85. travellingHookController.hookLaunchPosition = _launchPosition;
  86. travellingHookController.carSide = _carSide;
  87.  
  88. hookThrown = true;
  89. }
  90.  
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement