TeHArGiS10

Untitled

Aug 6th, 2016
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.81 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.Play("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. anim.Play("Idle");
  57. Vector3 originalPosPos = new Vector3(originalPos.transform.position.x, originalPos.transform.position.y, originalPos.transform.position.z);
  58. mainUFO.transform.position = Vector3.SmoothDamp(mainUFO.transform.position, originalPosPos, ref vel, smoothness);
  59.  
  60. }
  61.  
  62.  
  63. if (Input.GetKey(KeyCode.S))
  64. {
  65. anim.Stop("Idle");
  66. Vector3 targetPosBackwards = new Vector3(targetBackwards.transform.position.x, targetBackwards.transform.position.y, targetBackwards.transform.position.z);
  67. mainUFO.transform.position = Vector3.SmoothDamp(mainUFO.transform.position, targetPosBackwards, ref vel, smoothness);
  68. }
  69. else
  70. {
  71. anim.Play("Idle");
  72. Vector3 originalPosPos = new Vector3(originalPos.transform.position.x, originalPos.transform.position.y, originalPos.transform.position.z);
  73. mainUFO.transform.position = Vector3.SmoothDamp(mainUFO.transform.position, originalPosPos, ref vel, smoothness);
  74.  
  75. }
  76. }
  77.  
  78. }
Advertisement
Add Comment
Please, Sign In to add comment