유니티3d 그리고 웹통신

51
Unity3D 와 와 와와 작작작 : 작작작

Upload: -

Post on 25-May-2015

2.244 views

Category:

Software


0 download

DESCRIPTION

Unity3d 와 WWW 통신

TRANSCRIPT

Page 1: 유니티3D 그리고 웹통신

Unity3D 와 웹 통신

작성자 : 김현욱

Page 2: 유니티3D 그리고 웹통신

목차

1. 유니티로 게임만들때 웹까지 해야해 ?

2. 웹통신을 위한 기본 지식

3. 개발환경 설정

4. DBMS 설정 및 작업

5. 웹 설정 및 작업

6. 유니티 작업 및 최종 테스트

7. 참고사항

8. Q&A

Page 3: 유니티3D 그리고 웹통신

1. 유니티로 게임만들때 웹까지 해야해 ?

유니티로 게임만들껀데…웹까지 왜 해야하나… - ㅅ -?

웹까지 해야한다니 !! 으아 귀찮다 ~ 마ㅣ허 ; ㄷㄱㅎ

Page 4: 유니티3D 그리고 웹통신

1. 유니티로 게임만들때 웹까지 해야해 ?

단 하나의 이유만 찾자면데이터 보존 !!!!

Page 5: 유니티3D 그리고 웹통신

1. 유니티로 게임만들때 웹까지 해야해 ?

유니티에서 제공하는 PlayerPrefs를 사용하면 되는거 아님 ??

여기서 ! PlayerPrefs 는 .. 먹는건가요 ?

- UnityEngine.PlayerPrefs.SetString("stringKey", "abc"); - UnityEngine.PlayerPrefs.SetFloat("floatKey", 2.0f);

와 같은 형식으로 값을 설정하고 GetString 과 같은 함수로 저장한 값을꺼내올 수 있으며 , 저장되는 위치는 로컬에 물리적인 형태로 저장하므로게임을 재시작해도 마지막에 저장한 값 그대로 가져와 사용할 수 있음 .

Page 6: 유니티3D 그리고 웹통신

1. 유니티로 게임만들때 웹까지 해야해 ?

- PlayerPrefs 를 사용해서 저장해도 됨 .

- PlayerPrefs 을 이용해서 게임에 적용할 모든 데이터를 로컬에 저장할 수는 있겠지만 , 보안에 취약해지고 관리적인 차원에서도 서버에 데이터를 저장하는 것이 올바른 선택 !

- (PlayerPrefs 를 사용하여 데이터를 저장할때 , 암호화하여 저장할수는 있어도 .. 암호화된 데이터 자체가 로컬상에 있게 될 경우 서버보다 안전하지 않음 !)

- PlayerPrefs 를 사용하는 것은 보안과는 상관없이 아주 간단한 데이터 저장을 할때 선택지로 고민해볼수 있음 .

Page 7: 유니티3D 그리고 웹통신

2. 웹통신을 위한 기본 지식

그럼 웹으로 통신해서 데이터를어떻게 저장해야 ..?

Page 8: 유니티3D 그리고 웹통신

2. 웹통신을 위한 기본 지식

- 필수 지식

1. 데이터 저장을 위한 전체 플로우 개념

2. DBMS 와 웹에 대한 얇은 지식 은 뻥 !!

Page 9: 유니티3D 그리고 웹통신

2. 웹통신을 위한 기본 지식

Unity WEB DB

Unity WEB DB

저장

출력

Page 10: 유니티3D 그리고 웹통신

2. 웹통신을 위한 기본 지식

DBMS 란 ?

- DataBase Management System 의 약자… 인지는 불확실 ㅋㅋㅋㅋㅋ

- 액셀처럼 컬럼과 데이터를 2 차원형태로 저장 , 관리할 수 있는 기능을 가진 응용프로그램 .

- 오라클 , MSSQL, MY-SQL 등 많이 들어봄직한 단어들이 DBMS 를 지칭 .

- 무결성 , 원자성 , 일관성 , 고립성 , 영속성 .. 등 특성을 나타내는 단어들이 있으나 !! DBA 가 아닌이상 이런거 필요없고 우리는 유니티프로그래머 이므로 ..!!! 핵심만 보자면 .. 데이터를 영구적으로 안전하고 안정적으로 관리하기 위한 프로그램이 DB 다 ~ 라고 생각하세요 !

Page 11: 유니티3D 그리고 웹통신

2. 웹통신을 위한 기본 지식

웹이란 ?

- 설마…모르시는 분은 없겠죠 ?! Pass!!

Page 12: 유니티3D 그리고 웹통신

3. 개발환경 설정

그렇다면 .. 우리가 원하는 방식으로 데이터를 저장하고 불러오기 위해 어떻게 개발환경을 구성해야 하는 것인가 !?

Page 13: 유니티3D 그리고 웹통신

3. 개발환경 설정

1. DBMS - DBMS 설치 (Oracle)

2. WEB - 순수 JSP 만 사용 .

3. Unity3D - 이미 Install 완료 ! XD

※ 보통 MY-SQL 을 선택 . 무료이기 때문 .※ WEB 은 잘 모르지만 PHP 로 많이 하는듯 함 .※ JSP 로 구현하는 경우라도 실제 상용화버젼으로는 앞으로 테스트하는 방식으로 절대 사용하지 않음 . ※ 그럼에도 불구하고 .. DB 와 JSP 를 선택한 이유는… Why? 그마나 조금 아는게 이것뿐인 절망적인 상황 ..ORZ

Page 14: 유니티3D 그리고 웹통신

4. DBMS 설정 및 작업

DBMS 설치

- http://www.oracle.com/index.html 에서 다운로드 . - Oracle Database Express Edition 11g Release 2( 무료 ) 설치 . - 설치시 데이터베이스 접속을 위한 비밀번호 설정만 유의하여 Next 로 설치 마무리 .

Page 15: 유니티3D 그리고 웹통신

4. DBMS 설정 및 작업

DBMS 설치

- http://www.oracle.com/index.html 에서 다운로드 . - SQL Developer 다운로드 . - 압축 해제시 즉시 실행가능 . - 실행 후 관리자 계정으로 접속

짧은 Oracle 정보

- 오라클 설치후 관리계정은 총 2 개가 있는데 , Sys, system 이 그 두개의 계정 .- Sys 계정은 최종관리계정으로 마스터권한으로 가지고 있고 , System 계정은 ..- .. 기억나지 않습니다 . 그냥 sys 가 짱임 .

Page 16: 유니티3D 그리고 웹통신

4. DBMS 설정 및 작업

SQL Developer 셋팅

- SQL Developer 로 로컬에 설치된 DB 에 접속- 오라클의 경우 최종관리자 계정은 sys (system 계정은 sys 계정과는 다르게 일반 계정처럼 생각하면 됨 )- 설치중 설정한 암호로 db 접속 .- sys 계정으로 접속한 후 , 테스트로 사용할 사용자 계정 생성 . ( 테스트로 생성 및 사용할 데이터는 모두 사용자 계정에서 작업 ) - 11 시 방향 + 녹색 아이콘 클릭 ~

Page 17: 유니티3D 그리고 웹통신

4. DBMS 설정 및 작업

SQL Developer 셋팅

Page 18: 유니티3D 그리고 웹통신

4. DBMS 설정 및 작업

SQL Developer 셋팅

Page 19: 유니티3D 그리고 웹통신

4. DBMS 설정 및 작업

SQL Developer 셋팅

Page 20: 유니티3D 그리고 웹통신

4. DBMS 설정 및 작업

SQL Developer 셋팅

Page 21: 유니티3D 그리고 웹통신

4. DBMS 설정 및 작업

SQL Developer 셋팅

커밋이란 ?Oracle 은 데이터를 입력후 커밋을 해야 최종적으로 데이터가 저장됨 . 커밋전까지는 오라클이 데이터를 가지고만 있음 .

Page 22: 유니티3D 그리고 웹통신

5. 웹 설정 및 작업

※ 데이터베이스의 무결성등을 위한 세부적인 설정이 반드시 필요함 .

하지만 우리는 유니티 프로그래머잖아 ?

Page 23: 유니티3D 그리고 웹통신

5. 웹 설정 및 작업중간다리 역할을 해줄 웹 기반 작업을 하기 전에 !!!

Form 이 뭔가요 ?

Page 24: 유니티3D 그리고 웹통신

5. 웹 설정 및 작업

중간다리 역할을 해줄 웹 기반 작업을 하기 전에 !!!

Get / Post 방식이 뭔가요 ?

Page 25: 유니티3D 그리고 웹통신

5. 웹 설정 및 작업

Eclipse 설치 .

- https://www.eclipse.org/downloads/ 에서 다운로드 .- JDK 설치 . 버전은 SELF.- 웹서버 설정을 위한 Tomcat 다운로드 .- 오라클 DB 와 연동할 ojdbc14.jar 다운로드 .- 유니티에서 JSON 형태로 데이터를 받아야 하므로 json-simple-

1.1.1.jar 다운로드 .

- 그외 기본적인 환경설정에서 문제가 생기면 구글신에게 기도드리세요 .

※ 앞으로의 설명은 웹서버 및 웹프로젝트를 작성하기 위한 설정이 완료되었다는 가정하에 진행 .

Page 26: 유니티3D 그리고 웹통신

5. 웹 설정 및 작업

웹 프로젝트 작성

Page 27: 유니티3D 그리고 웹통신

5. 웹 설정 및 작업

웹 프로젝트 작성

Page 28: 유니티3D 그리고 웹통신

5. 웹 설정 및 작업

웹 프로젝트 작성

Page 29: 유니티3D 그리고 웹통신

5. 웹 설정 및 작업

웹 프로젝트 작성

Page 30: 유니티3D 그리고 웹통신

5. 웹 설정 및 작업

웹 프로젝트 작성

Page 31: 유니티3D 그리고 웹통신

5. 웹 설정 및 작업

웹 프로젝트 작성

Page 32: 유니티3D 그리고 웹통신

5. 웹 설정 및 작업

웹 프로젝트 작성

Page 33: 유니티3D 그리고 웹통신

5. 웹 설정 및 작업

웹 프로젝트 작성

Page 34: 유니티3D 그리고 웹통신

5. 웹 설정 및 작업

웹 프로젝트 작성

Page 35: 유니티3D 그리고 웹통신

5. 웹 설정 및 작업

웹 프로젝트 작성

Page 36: 유니티3D 그리고 웹통신

5. 웹 설정 및 작업

웹 프로젝트 작성

Page 37: 유니티3D 그리고 웹통신

5. 웹 설정 및 작업

웹 프로젝트 작성

Page 38: 유니티3D 그리고 웹통신

5. 웹 설정 및 작업

웹 프로젝트 작성

Page 39: 유니티3D 그리고 웹통신

5. 웹 설정 및 작업

웹 프로젝트 작성

Page 40: 유니티3D 그리고 웹통신

5. 웹 설정 및 작업

웹 프로젝트 작성

Page 41: 유니티3D 그리고 웹통신

6. 유니티 작업 및 최종 테스트

드디어 DB, WEB 설정이 모두 끝 ! 만세 !!!!

하지만 마지막 과정인 유니티가 남았으므로 다음으로 넘어갑시다 !

Page 42: 유니티3D 그리고 웹통신

6. 유니티 작업 및 최종 테스트

NGUI 를 이용한 기본 화면 구성

Page 43: 유니티3D 그리고 웹통신

6. 유니티 작업 및 최종 테스트

테스트에 사용할 스크립트 작성

싱글턴 패턴을 사용하여 별도의 객체 참조명령 없이 편하게 접근하도록 작성 .

Get 방식 및 Post 방식 모두 구현 .

Post 방식으로 데이터를 전달하기 위해WWWForm 클래스를 사용하여Dictionary 제네릭으로 데이터를 받아Form 을 구성 .

Page 44: 유니티3D 그리고 웹통신

6. 유니티 작업 및 최종 테스트

테스트에 사용한 스크립트 작성

웹에서 SimpleJson 을 검색하면 SimpleJson.cs 형태로 C# 스크립트를 받을 수있음 . 해당 스크립트를 프로젝트에 넣긔 !

Page 45: 유니티3D 그리고 웹통신

6. 유니티 작업 및 최종 테스트

테스트에 사용한 스크립트 작성

테스트를 위한 버튼 스크립트 작성

Page 46: 유니티3D 그리고 웹통신

6. 유니티 작업 및 최종 테스트

WWW 클래스에 대해 .

isDone : 코루틴 내에서 yield return www 형태로 요청후 대기한 다음 response 가 되면 isDone 으로 체크하여 후 처리를 진행할 수 있음 .

Page 47: 유니티3D 그리고 웹통신

6. 유니티 작업 및 최종 테스트

Hierarchy 에 준비한 스크립트 및 필요한 객체 attach.

Page 48: 유니티3D 그리고 웹통신

6. 유니티 작업 및 최종 테스트

원격접속을 통해 실제 DB 구성 및 JSP 작업 진행내역 확인 .

테스트 진행 .

Page 49: 유니티3D 그리고 웹통신

7. 참고사항

- SSL 적용된 URL 호출시 인증서로 인해 WWW 클래스로 데이터를 가져오지 못함 . - 이로 인해 문제가 생길 경우 아래의 url 을 참고하여 구현 . - https://github.com/andyburke/UnityHTTP

- 1 인개발로 게임을 개발하는데 .. 서버쪽 지식이 없음 .. 이거 어떻게 해야하나 .. - 프라우드넷 (http://www.nettention.com/ko/de-fault.aspx) 상용 제품을 고려해보는 것도 하나의 대안이 될수 있음 .

Page 50: 유니티3D 그리고 웹통신

8. 질문의 시간이 왔어요 . 여러분 .

Q&A

Page 51: 유니티3D 그리고 웹통신

Thank you.