Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- public class ufoController : MonoBehaviour {
- public GameObject mainUFO;
- public float sensitivity;
- public float speed;
- public float smoothness = 0.3f;
- public Transform originalPos;
- public Transform targetForward;
- public Transform targetBackwards;
- Rigidbody rb;
- Animation anim;
- void Start ()
- {
- rb = GetComponent<Rigidbody>();
- anim = mainUFO.GetComponent<Animation>();
- anim.Play("Idle");
- }
- void Update ()
- {
- //Movement
- float xPos = Input.GetAxisRaw("Horizontal");
- float zPos = Input.GetAxisRaw("Vertical");
- Vector3 xMov = Camera.main.transform.right * xPos;
- Vector3 zMov = Camera.main.transform.forward * zPos;
- Vector3 velocity = (xMov + zMov).normalized * speed;
- if (velocity != Vector3.zero)
- {
- rb.MovePosition(rb.position + velocity * Time.deltaTime);
- }
- //Camera
- float xRot = Input.GetAxisRaw("Mouse Y");
- float yRot = Input.GetAxisRaw("Mouse X");
- Vector3 vectorX = new Vector3(xRot, 0, 0) * sensitivity;
- Vector3 vectorY = new Vector3(0, yRot, 0) * sensitivity;
- rb.MoveRotation(rb.rotation * Quaternion.Euler(vectorY));
- Camera.main.transform.Rotate(-vectorX);
- Vector3 vel = Vector3.zero;
- if (Input.GetKey(KeyCode.W))
- {
- anim.Stop("Idle");
- Vector3 targetPosForward = new Vector3(targetForward.transform.position.x, targetForward.transform.position.y, targetForward.transform.position.z);
- mainUFO.transform.position = Vector3.SmoothDamp(mainUFO.transform.position, targetPosForward, ref vel, smoothness);
- } else
- {
- anim.Play("Idle");
- Vector3 originalPosPos = new Vector3(originalPos.transform.position.x, originalPos.transform.position.y, originalPos.transform.position.z);
- mainUFO.transform.position = Vector3.SmoothDamp(mainUFO.transform.position, originalPosPos, ref vel, smoothness);
- }
- if (Input.GetKey(KeyCode.S))
- {
- anim.Stop("Idle");
- Vector3 targetPosBackwards = new Vector3(targetBackwards.transform.position.x, targetBackwards.transform.position.y, targetBackwards.transform.position.z);
- mainUFO.transform.position = Vector3.SmoothDamp(mainUFO.transform.position, targetPosBackwards, ref vel, smoothness);
- }
- else
- {
- anim.Play("Idle");
- Vector3 originalPosPos = new Vector3(originalPos.transform.position.x, originalPos.transform.position.y, originalPos.transform.position.z);
- mainUFO.transform.position = Vector3.SmoothDamp(mainUFO.transform.position, originalPosPos, ref vel, smoothness);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment