유니티와아두이노를활용한 -...

46
㈜헬로앱스 코딩교육 김영준 공학박사, 목원대학교 겸임교수 Microsoft 수석연구원 [email protected] http://www.helloapps.co.kr 유니티와 아두이노를 활용한 VR 컨트롤러 개발 Part 04

Transcript of 유니티와아두이노를활용한 -...

㈜헬로앱스 코딩교육김영준

공학박사, 목원대학교 겸임교수前 Microsoft 수석연구원

[email protected]://www.helloapps.co.kr

유니티와 아두이노를 활용한

VR 컨트롤러 개발

Part 04

유니티와 아두이노를 활용한 VR 컨트롤러 개발

유니티 명령어 실습

- 통통 튀는 박스 만들기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

유니티 툴 화면 배치 수정하기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

유니티 툴 화면 배치 수정하기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

3D물체 생성하기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

3D물체 생성하기

위치 이동해 보기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

바닥판 추가하기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

박스에 질량 추가하기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

박스에 탄성 추가하기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

박스에 탄성 추가하기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

바닥판에 탄성 추가하기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

유니티 명령어 실습

- 통통 튀는 공 만들기

실습

유니티와 아두이노를 활용한 VR 컨트롤러 개발

통통 튀는 공 만들기

새로운 씬을 만들고 통통 튀는 공 기능을 개발해 본다.

유니티와 아두이노를 활용한 VR 컨트롤러 개발

유니티 명령어 실습

- 에셋 다운로드 하기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

에셋 다운로드 받기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

에셋 다운로드 받기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

에셋 다운로드 받기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

에셋 다운로드 받기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

에셋 다운로드 받기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

에셋 다운로드 받기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

에셋 추가하기

• 폴더가 만들어 짐

유니티와 아두이노를 활용한 VR 컨트롤러 개발

유니티 명령어 실습

- 사진 입히기 (텍스처)

유니티와 아두이노를 활용한 VR 컨트롤러 개발

텍스처 입히기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

텍스처 입히기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

텍스처 입히기

바닥판의 크기를늘린다.

유니티와 아두이노를 활용한 VR 컨트롤러 개발

텍스처 입히기

Tilling 값을100, 100 으로 수정한다.

유니티와 아두이노를 활용한 VR 컨트롤러 개발

텍스처 입히기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

유니티 명령어 실습

- 프로그램 기능 추가하기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

C# 스크립트 생성하기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

외부 코드 편집기 선택하기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

외부 코드 편집기 선택하기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

외부 코드 편집기 실행하기

생성된 C# 파일을 마우스로 더블 클릭함

유니티와 아두이노를 활용한 VR 컨트롤러 개발

외부 코드 편집기 실행하기

using System.Collections;using System.Collections.Generic;using UnityEngine;

public class NewBehaviourScript : MonoBehaviour {

public GameObject MyCamera;

void Start () {

}

void Update () {

}}

유니티와 아두이노를 활용한 VR 컨트롤러 개발

프로그램을 실행시키기 위한 빈 오브젝트 생성하기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

프로그램을 실행시키기 위한 빈 오브젝트 생성하기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

카메라 오브젝트 연결하기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

코드 수정하기

using System.Collections;using System.Collections.Generic;using UnityEngine;

public class NewBehaviourScript : MonoBehaviour {

public GameObject MyCamera;

void Start () {

}

void Update () {

float v = Input.GetAxis("Vertical") * Time.deltaTime * 10;float h = Input.GetAxis("Horizontal") * Time.deltaTime * 10;

MyCamera.transform.Translate(h, 0, v);}

}

유니티와 아두이노를 활용한 VR 컨트롤러 개발

유니티 명령어 실습

- 아두이노 통신하기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

유니티 설정하기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

유니티 설정하기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

코드 수정하기

using System.Collections;using System.Collections.Generic;using UnityEngine;

using System.IO.Ports;

유니티와 아두이노를 활용한 VR 컨트롤러 개발

코드 수정하기

public GameObject MyCamera;

SerialPort comm;

void Start () {

comm = new SerialPort("COM4", 115200);comm.Open();

}

유니티와 아두이노를 활용한 VR 컨트롤러 개발

코드 수정하기

void Update () {

string s = comm.ReadLine();

if ( !string.IsNullOrEmpty(s) )Debug.Log(s);

}

유니티와 아두이노를 활용한 VR 컨트롤러 개발

유니티 명령어 실습

- 아두이노로 유니티 제어하기

유니티와 아두이노를 활용한 VR 컨트롤러 개발

코드 수정하기

void Update () {

string s = comm.ReadLine();

if ( !string.IsNullOrEmpty(s) ){

if (s.StartsWith("<") && s.EndsWith(">")){

s = s.TrimStart('<').TrimEnd('>');string[] data = s.Split(',');

int d = int.Parse(data[0]);float x = float.Parse(data[1]);float y = float.Parse(data[2]);

x = x / 500.0f;y = y / 500.0f;

} }

}

유니티와 아두이노를 활용한 VR 컨트롤러 개발

코드 수정하기 void Update () {

string s = comm.ReadLine();

if (!string.IsNullOrEmpty(s)){

if (s.StartsWith("<") && s.EndsWith(">")){

s = s.TrimStart('<').TrimEnd('>');string[] data = s.Split(',');

int d = int.Parse(data[0]);float x = float.Parse(data[1]);float y = float.Parse(data[2]);

x = x / 500.0f;y = y / 500.0f;

float v = x * Time.deltaTime * 10;float h = y * Time.deltaTime * 10;

MyCamera.transform.Translate(h, 0, v);}

}}