TeHArGiS10

Untitled

Aug 6th, 2016
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.90 KB | None | 0 0
  1. using UnityEngine;
  2.  
  3. public class ufoController : MonoBehaviour {
  4.  
  5. public GameObject mainUFO;
  6. public float sensitivity;
  7. public float speed;
  8. public float smoothness = 0.3f;
  9. public Transform originalPos;
  10. public Transform targetForward;
  11. public Transform targetBackwards;
  12. Rigidbody rb;
  13. Animation anim;
  14.  
  15. void Start ()
  16. {
  17. rb = GetComponent<Rigidbody>();
  18. anim = mainUFO.GetComponent<Animation>();
  19. anim.CrossFade("Idle");
  20. }
  21.  
  22. void Update ()
  23. {
  24. //Movement
  25. float xPos = Input.GetAxisRaw("Horizontal");
  26. float zPos = Input.GetAxisRaw("Vertical");
  27.  
  28. Vector3 xMov = Camera.main.transform.right * xPos;
  29. Vector3 zMov = Camera.main.transform.forward * zPos;
  30.  
  31. Vector3 velocity = (xMov + zMov).normalized * speed;
  32.  
  33. if (velocity != Vector3.zero)
  34. {
  35. rb.MovePosition(rb.position + velocity * Time.deltaTime);
  36. }
  37.  
  38. //Camera
  39. float xRot = Input.GetAxisRaw("Mouse Y");
  40. float yRot = Input.GetAxisRaw("Mouse X");
  41.  
  42. Vector3 vectorX = new Vector3(xRot, 0, 0) * sensitivity;
  43. Vector3 vectorY = new Vector3(0, yRot, 0) * sensitivity;
  44.  
  45. rb.MoveRotation(rb.rotation * Quaternion.Euler(vectorY));
  46. Camera.main.transform.Rotate(-vectorX);
  47.  
  48. Vector3 vel = Vector3.zero;
  49. if (Input.GetKey(KeyCode.W))
  50. {
  51. anim.Stop("Idle");
  52. Vector3 targetPosForward = new Vector3(targetForward.transform.position.x, targetForward.transform.position.y, targetForward.transform.position.z);
  53. mainUFO.transform.position = Vector3.SmoothDamp(mainUFO.transform.position, targetPosForward, ref vel, smoothness);
  54. } else
  55. {
  56. Vector3 originalPosPos = new Vector3(originalPos.transform.position.x, originalPos.transform.position.y, originalPos.transform.position.z);
  57. mainUFO.transform.position = Vector3.SmoothDamp(mainUFO.transform.position, originalPosPos, ref vel, smoothness);
  58.  
  59. }
  60.  
  61.  
  62. if (Input.GetKey(KeyCode.S))
  63. {
  64. anim.Stop("Idle");
  65. Vector3 targetPosBackwards = new Vector3(targetBackwards.transform.position.x, targetBackwards.transform.position.y, targetBackwards.transform.position.z);
  66. mainUFO.transform.position = Vector3.SmoothDamp(mainUFO.transform.position, targetPosBackwards, ref vel, smoothness);
  67. }
  68. else
  69. {
  70. Vector3 originalPosPos = new Vector3(originalPos.transform.position.x, originalPos.transform.position.y, originalPos.transform.position.z);
  71. mainUFO.transform.position = Vector3.SmoothDamp(mainUFO.transform.position, originalPosPos, ref vel, smoothness);
  72.  
  73. }
  74.  
  75.  
  76. if (mainUFO.transform.position == originalPos.transform.position)
  77. {
  78. anim.CrossFade("Idle");
  79. }
  80. }
  81.  
  82. }
Advertisement
Add Comment
Please, Sign In to add comment