├── .DS_Store ├── PlayerController.cs ├── PlayerControllerSerial.cs ├── left_right_move.cs ├── loop_rotate.cs └── rotate.cs /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PersesTitan/UnityPlayer/8b89eec7c828230befff56aecde8760c0dc6076e/.DS_Store -------------------------------------------------------------------------------- /PlayerController.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class PlayerController : MonoBehaviour { 6 | 7 | protected Rigidbody rb; 8 | public float moveSpeed; 9 | public float rotateSpeed; 10 | 11 | // Start is called before the first frame update 12 | void Start() { 13 | rb = GetComponent(); 14 | } 15 | 16 | // Update is called once per frame 17 | void Update() { 18 | 19 | if (Input.GetKey(KeyCode.UpArrow)) transform.Translate(Vector3.forward * moveSpeed); 20 | if (Input.GetKey(KeyCode.DownArrow)) transform.Translate(Vector3.back * moveSpeed); 21 | if (Input.GetKey(KeyCode.LeftArrow)) transform.Translate(Vector3.left * moveSpeed); 22 | if (Input.GetKey(KeyCode.RightArrow)) transform.Translate(Vector3.right * moveSpeed); 23 | 24 | // if (Input.GetKey(KeyCode.UpArrow)) transform.Translate(Vector3.forward * moveSpeed, Space.World); 25 | // if (Input.GetKey(KeyCode.DownArrow)) transform.Translate(Vector3.back * moveSpeed, Space.World); 26 | // if (Input.GetKey(KeyCode.LeftArrow)) transform.Translate(Vector3.left * moveSpeed, Space.World); 27 | // if (Input.GetKey(KeyCode.RightArrow)) transform.Translate(Vector3.right * moveSpeed, Space.World); 28 | 29 | 30 | if (Input.GetKey(KeyCode.O)) transform.Translate(Vector3.up * moveSpeed); 31 | if (Input.GetKey(KeyCode.P)) transform.Translate(Vector3.down * moveSpeed); 32 | 33 | //오른쪽 회전 34 | if (Input.GetKey(KeyCode.D)) transform.Rotate(Vector3.up * rotateSpeed); 35 | //왼쪽 회전 36 | if (Input.GetKey(KeyCode.A)) transform.Rotate(Vector3.down * rotateSpeed); 37 | //아래로 회전 38 | if (Input.GetKey(KeyCode.S)) transform.Rotate(Vector3.right * rotateSpeed); 39 | //위로 회전 40 | if (Input.GetKey(KeyCode.W)) transform.Rotate(Vector3.left * rotateSpeed); 41 | 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /PlayerControllerSerial.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using System.IO.Ports; 5 | using System.Threading; 6 | using System; 7 | 8 | public class PlayerController : MonoBehaviour { 9 | 10 | protected Rigidbody rb; 11 | public float moveSpeed; 12 | public float rotateSpeed; 13 | public string port; //포트 넣기 14 | private SerialPort sp = new SerialPort(); 15 | 16 | // Start is called before the first frame update 17 | void Start() { 18 | rb = GetComponent(); 19 | sp.PortName = "COM" + port; 20 | sp.BaudRate = 19200; 21 | sp.DataBits = 8; 22 | sp.Parity = Parity.None; 23 | sp.StopBites - StopBites.ONe; 24 | sp.Open(); 25 | } 26 | 27 | // Update is called once per frame 28 | void Update() { 29 | 30 | string[] lines = Input.inputString.Split(' '); 31 | int x = Int32.Parse(lines[0]); 32 | int y = Int32.Parse(lines[1]); 33 | int z = Int32.Parse(lines[2]); 34 | 35 | transform.Rotate(Vector3.up * moveSpeed * x); 36 | transform.Rotate(Vector3.right * moveSpeed * y); 37 | 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /left_right_move.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class move : MonoBehaviour { 6 | 7 | Vector3 pos; //현재위치 8 | float delta = 2.0f; // 좌(우)로 이동가능한 (x)최대값 9 | float speed = 3.0f; // 이동속도 10 | 11 | void Start () { 12 | pos = transform.position; 13 | } 14 | 15 | void Update () { 16 | Vector3 v = pos; 17 | v.x += delta * Mathf.Sin(Time.time * speed); 18 | transform.position = v; 19 | } 20 | } -------------------------------------------------------------------------------- /loop_rotate.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class Loop : MonoBehaviour { 6 | 7 | public float degreePerSecond; 8 | 9 | void Start() { 10 | 11 | } 12 | 13 | void Update() { 14 | transform.Rotate(Vector3.up * Time.deltaTime * degreePerSecond); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /rotate.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class rotate : MonoBehaviour { 6 | 7 | // 센서로부터 x, y, z 값 받아서 넣기 8 | public float x_value; 9 | public float y_value; 10 | public float z_value; 11 | 12 | void Start() { 13 | 14 | } 15 | 16 | void Update() { 17 | // 임시 테스트 용으로 R 버튼을 눌렀을때 입력 받은 값인 x,y,z 값을 받아옴 18 | if (Input.GetKey(KeyCode.R)) { 19 | transform.rotation = Quaternion.Euler(x_value,y_value,z_value); 20 | } 21 | } 22 | } --------------------------------------------------------------------------------