Unity3D 와 웹 통신
작성자 : 김현욱
목차
1. 유니티로 게임만들때 웹까지 해야해?
2. 웹통신을 위한 기본 지식
3. 개발환경 설정
4. DBMS 설정 및 작업
5. 웹 설정 및 작업
6. 유니티 작업 및 최종 테스트
7. 참고사항
8. Q&A
1. 유니티로 게임만들때 웹까지 해야해?
유니티로 게임만들껀데…
웹까지 왜 해야하나…-ㅅ-?
웹까지 해야한다니!! 으아 귀찮다~마ㅣ허;ㄷㄱㅎ
1. 유니티로 게임만들때 웹까지 해야해?
단 하나의 이유만 찾자면
데이터 보존!!!!
1. 유니티로 게임만들때 웹까지 해야해?
유니티에서 제공하는 PlayerPrefs를
사용하면 되는거 아님??
여기서! PlayerPrefs는.. 먹는건가요?
- UnityEngine.PlayerPrefs.SetString("stringKey", "abc");
- UnityEngine.PlayerPrefs.SetFloat("floatKey", 2.0f);
와 같은 형식으로 값을 설정하고 GetString 과 같은 함수로 저장한 값을
꺼내올 수 있으며, 저장되는 위치는 로컬에 물리적인 형태로 저장하므로
게임을 재시작해도 마지막에 저장한 값 그대로 가져와 사용할 수 있음.
1. 유니티로 게임만들때 웹까지 해야해?
- PlayerPrefs를 사용해서 저장해도 됨.
- PlayerPrefs을 이용해서 게임에 적용할 모든 데이터를 로컬에 저장할
수는 있겠지만, 보안에 취약해지고 관리적인 차원에서도 서버에 데이
터를 저장하는 것이 올바른 선택!
- (PlayerPrefs를 사용하여 데이터를 저장할때, 암호화하여 저장할수는
있어도.. 암호화된 데이터 자체가 로컬상에 있게 될 경우 서버보다 안
전하지 않음!)
- PlayerPrefs를 사용하는 것은 보안과는 상관없이 아주 간단한 데이터
저장을 할때 선택지로 고민해볼수 있음.
2. 웹통신을 위한 기본 지식
그럼 웹으로 통신해서 데이터를
어떻게 저장해야..?
2. 웹통신을 위한 기본 지식
- 필수 지식
1. 데이터 저장을 위한 전체 플로우 개념
2. DBMS 와 웹에 대한 얇은지식 은 뻥!!
2. 웹통신을 위한 기본 지식
Unity WEB DB
Unity WEB DB
저장
출력
2. 웹통신을 위한 기본 지식
DBMS 란?
- DataBase Management System의 약자… 인지는 불확실 ㅋㅋㅋㅋㅋ
- 액셀처럼 컬럼과 데이터를 2차원형태로 저장, 관리할 수 있는 기능을 가진 응
용프로그램.
- 오라클, MSSQL, MY-SQL 등 많이 들어봄직한 단어들이 DBMS를 지칭.
- 무결성, 원자성, 일관성, 고립성, 영속성..등 특성을 나타내는 단어들이 있으나!!
DBA가 아닌이상 이런거 필요없고 우리는 유니티프로그래머
이므로..!!! 핵심만 보자면.. 데이터를 영구적으로 안전하고 안정적으로 관
리하기 위한 프로그램이 DB다~ 라고 생각하세요!
2. 웹통신을 위한 기본 지식
웹이란?
- 설마…모르시는 분은 없겠죠?! Pass!!
3. 개발환경 설정
그렇다면.. 우리가 원하는 방식으로
데이터를 저장하고 불러오기 위해
어떻게 개발환경을 구성해야 하는
것인가!?
3. 개발환경 설정
1. DBMS
- DBMS 설치(Oracle)
2. WEB
- 순수 JSP만 사용.
3. Unity3D
- 이미 Install 완료! XD
※ 보통 MY-SQL을 선택. 무료이기 때문.
※ WEB은 잘 모르지만 PHP로 많이 하는듯 함.
※ JSP로 구현하는 경우라도 실제 상용화버젼으로는 앞으로 테스트하는
방식으로 절대 사용하지 않음.
※ 그럼에도 불구하고.. DB와 JSP를 선택한 이유는… Why? 그마나 조금 아
는게 이것뿐인 절망적인 상황..ORZ
4. DBMS 설정 및 작업
DBMS 설치
- http://www.oracle.com/index.html 에서 다운로드.
- Oracle Database Express Edition 11g Release 2(무료) 설치.
- 설치시 데이터베이스 접속을 위한 비밀번호 설정만 유의하여 Next 로
설치 마무리.
4. DBMS 설정 및 작업
DBMS 설치
- http://www.oracle.com/index.html 에서 다운로드.
- SQL Developer 다운로드.
- 압축 해제시 즉시 실행가능.
- 실행 후 관리자 계정으로 접속
짧은 Oracle 정보
- 오라클 설치후 관리계정은 총 2개가 있는데, Sys, system 이 그 두개의 계정.
- Sys계정은 최종관리계정으로 마스터권한으로 가지고 있고, System 계정은 ..
- ..기억나지 않습니다. 그냥 sys가 짱임.
4. DBMS 설정 및 작업
SQL Developer 셋팅
- SQL Developer로 로컬에 설치된 DB에 접속
- 오라클의 경우 최종관리자 계정은 sys (system 계정은 sys계정과는 다르
게 일반 계정처럼 생각하면 됨)
- 설치중 설정한 암호로 db 접속.
- sys 계정으로 접속한 후, 테스트로 사용할 사용자 계정 생성. (테스트로
생성 및 사용할 데이터는 모두 사용자 계정에서 작업)
- 11시 방향 + 녹색 아이콘 클릭~
4. DBMS 설정 및 작업
SQL Developer 셋팅
4. DBMS 설정 및 작업
SQL Developer 셋팅
4. DBMS 설정 및 작업
SQL Developer 셋팅
4. DBMS 설정 및 작업
SQL Developer 셋팅
4. DBMS 설정 및 작업
SQL Developer 셋팅
커밋이란?
Oracle은 데이터를 입력후 커밋을 해야 최종적으로 데이터가 저장됨. 커밋전까지
는 오라클이 데이터를 가지고만 있음.
5. 웹 설정 및 작업
※ 데이터베이스의 무결성등을 위한 세부적인 설정이 반드시 필요함.
하지만 우리는 유니티 프로그래머잖아?
5. 웹 설정 및 작업
중간다리 역할을 해줄 웹 기반 작업을 하기 전에!!!
Form 이 뭔가요?
5. 웹 설정 및 작업
중간다리 역할을 해줄 웹 기반 작업을 하기 전에!!!
Get / Post 방식이 뭔가요?
5. 웹 설정 및 작업
Eclipse 설치.
- https://www.eclipse.org/downloads/ 에서 다운로드.
- JDK 설치. 버전은 SELF.
- 웹서버 설정을 위한 Tomcat 다운로드.
- 오라클 DB와 연동할 ojdbc14.jar 다운로드.
- 유니티에서 JSON 형태로 데이터를 받아야 하므로 json-simple-
1.1.1.jar 다운로드.
- 그외 기본적인 환경설정에서 문제가 생기면 구글신에게 기도드리세요.
※ 앞으로의 설명은 웹서버 및 웹프로젝트를 작성하기 위한 설정이 완료
되었다는 가정하에 진행.
5. 웹 설정 및 작업
웹 프로젝트 작성
5. 웹 설정 및 작업
웹 프로젝트 작성
5. 웹 설정 및 작업
웹 프로젝트 작성
5. 웹 설정 및 작업
웹 프로젝트 작성
5. 웹 설정 및 작업
웹 프로젝트 작성
5. 웹 설정 및 작업
웹 프로젝트 작성
5. 웹 설정 및 작업
웹 프로젝트 작성
5. 웹 설정 및 작업
웹 프로젝트 작성
5. 웹 설정 및 작업
웹 프로젝트 작성
5. 웹 설정 및 작업
웹 프로젝트 작성
5. 웹 설정 및 작업
웹 프로젝트 작성
5. 웹 설정 및 작업
웹 프로젝트 작성
5. 웹 설정 및 작업
웹 프로젝트 작성
5. 웹 설정 및 작업
웹 프로젝트 작성
5. 웹 설정 및 작업
웹 프로젝트 작성
6. 유니티 작업 및 최종 테스트
드디어 DB, WEB 설정이 모두 끝! 만세!!!!
하지만 마지막 과정인 유니티가 남았으므로 다음으로 넘어갑시다!
6. 유니티 작업 및 최종 테스트
NGUI를 이용한 기본 화면 구성
6. 유니티 작업 및 최종 테스트
테스트에 사용할 스크립트 작성
싱글턴 패턴을 사용하여 별도의 객체 참조
명령 없이 편하게 접근하도록 작성.
Get 방식 및 Post 방식 모두 구현.
Post 방식으로 데이터를 전달하기 위해
WWWForm 클래스를 사용하여
Dictionary 제네릭으로 데이터를 받아
Form을 구성.
6. 유니티 작업 및 최종 테스트
테스트에 사용한 스크립트 작성
웹에서 SimpleJson을 검색하면 SimpleJson.cs 형태로 C#스크립트를 받을 수있음.
해당 스크립트를 프로젝트에 넣긔!
6. 유니티 작업 및 최종 테스트
테스트에 사용한 스크립트 작성
테스트를 위한 버튼 스크립트 작성
6. 유니티 작업 및 최종 테스트
WWW 클래스에 대해.
isDone : 코루틴 내에서 yield return www 형태로 요청후 대기한 다음 response가 되면 isDone으로 체크
하여 후 처리를 진행할 수 있음.
6. 유니티 작업 및 최종 테스트
Hierarchy에 준비한 스크립트 및 필요한 객체 attach.
6. 유니티 작업 및 최종 테스트
원격접속을 통해 실제 DB 구성 및 JSP
작업 진행내역 확인.
테스트 진행.
7. 참고사항
- SSL적용된 URL 호출시 인증서로 인해 WWW 클래스로 데
이터를 가져오지 못함.
- 이로 인해 문제가 생길 경우 아래의 url을 참고하여 구현.
- https://github.com/andyburke/UnityHTTP
- 1인개발로 게임을 개발하는데.. 서버쪽 지식이 없음.. 이거
어떻게 해야하나..
- 프라우드넷
(http://www.nettention.com/ko/default.aspx) 상용 제품을
고려해보는 것도 하나의 대안이 될수 있음.
8. 질문의 시간이 왔어요. 여러분.
Q&A
Thank you.

유니티3D 그리고 웹통신

  • 1.
    Unity3D 와 웹통신 작성자 : 김현욱
  • 2.
    목차 1. 유니티로 게임만들때웹까지 해야해? 2. 웹통신을 위한 기본 지식 3. 개발환경 설정 4. DBMS 설정 및 작업 5. 웹 설정 및 작업 6. 유니티 작업 및 최종 테스트 7. 참고사항 8. Q&A
  • 3.
    1. 유니티로 게임만들때웹까지 해야해? 유니티로 게임만들껀데… 웹까지 왜 해야하나…-ㅅ-? 웹까지 해야한다니!! 으아 귀찮다~마ㅣ허;ㄷㄱㅎ
  • 4.
    1. 유니티로 게임만들때웹까지 해야해? 단 하나의 이유만 찾자면 데이터 보존!!!!
  • 5.
    1. 유니티로 게임만들때웹까지 해야해? 유니티에서 제공하는 PlayerPrefs를 사용하면 되는거 아님?? 여기서! PlayerPrefs는.. 먹는건가요? - UnityEngine.PlayerPrefs.SetString("stringKey", "abc"); - UnityEngine.PlayerPrefs.SetFloat("floatKey", 2.0f); 와 같은 형식으로 값을 설정하고 GetString 과 같은 함수로 저장한 값을 꺼내올 수 있으며, 저장되는 위치는 로컬에 물리적인 형태로 저장하므로 게임을 재시작해도 마지막에 저장한 값 그대로 가져와 사용할 수 있음.
  • 6.
    1. 유니티로 게임만들때웹까지 해야해? - PlayerPrefs를 사용해서 저장해도 됨. - PlayerPrefs을 이용해서 게임에 적용할 모든 데이터를 로컬에 저장할 수는 있겠지만, 보안에 취약해지고 관리적인 차원에서도 서버에 데이 터를 저장하는 것이 올바른 선택! - (PlayerPrefs를 사용하여 데이터를 저장할때, 암호화하여 저장할수는 있어도.. 암호화된 데이터 자체가 로컬상에 있게 될 경우 서버보다 안 전하지 않음!) - PlayerPrefs를 사용하는 것은 보안과는 상관없이 아주 간단한 데이터 저장을 할때 선택지로 고민해볼수 있음.
  • 7.
    2. 웹통신을 위한기본 지식 그럼 웹으로 통신해서 데이터를 어떻게 저장해야..?
  • 8.
    2. 웹통신을 위한기본 지식 - 필수 지식 1. 데이터 저장을 위한 전체 플로우 개념 2. DBMS 와 웹에 대한 얇은지식 은 뻥!!
  • 9.
    2. 웹통신을 위한기본 지식 Unity WEB DB Unity WEB DB 저장 출력
  • 10.
    2. 웹통신을 위한기본 지식 DBMS 란? - DataBase Management System의 약자… 인지는 불확실 ㅋㅋㅋㅋㅋ - 액셀처럼 컬럼과 데이터를 2차원형태로 저장, 관리할 수 있는 기능을 가진 응 용프로그램. - 오라클, MSSQL, MY-SQL 등 많이 들어봄직한 단어들이 DBMS를 지칭. - 무결성, 원자성, 일관성, 고립성, 영속성..등 특성을 나타내는 단어들이 있으나!! DBA가 아닌이상 이런거 필요없고 우리는 유니티프로그래머 이므로..!!! 핵심만 보자면.. 데이터를 영구적으로 안전하고 안정적으로 관 리하기 위한 프로그램이 DB다~ 라고 생각하세요!
  • 11.
    2. 웹통신을 위한기본 지식 웹이란? - 설마…모르시는 분은 없겠죠?! Pass!!
  • 12.
    3. 개발환경 설정 그렇다면..우리가 원하는 방식으로 데이터를 저장하고 불러오기 위해 어떻게 개발환경을 구성해야 하는 것인가!?
  • 13.
    3. 개발환경 설정 1.DBMS - DBMS 설치(Oracle) 2. WEB - 순수 JSP만 사용. 3. Unity3D - 이미 Install 완료! XD ※ 보통 MY-SQL을 선택. 무료이기 때문. ※ WEB은 잘 모르지만 PHP로 많이 하는듯 함. ※ JSP로 구현하는 경우라도 실제 상용화버젼으로는 앞으로 테스트하는 방식으로 절대 사용하지 않음. ※ 그럼에도 불구하고.. DB와 JSP를 선택한 이유는… Why? 그마나 조금 아 는게 이것뿐인 절망적인 상황..ORZ
  • 14.
    4. DBMS 설정및 작업 DBMS 설치 - http://www.oracle.com/index.html 에서 다운로드. - Oracle Database Express Edition 11g Release 2(무료) 설치. - 설치시 데이터베이스 접속을 위한 비밀번호 설정만 유의하여 Next 로 설치 마무리.
  • 15.
    4. DBMS 설정및 작업 DBMS 설치 - http://www.oracle.com/index.html 에서 다운로드. - SQL Developer 다운로드. - 압축 해제시 즉시 실행가능. - 실행 후 관리자 계정으로 접속 짧은 Oracle 정보 - 오라클 설치후 관리계정은 총 2개가 있는데, Sys, system 이 그 두개의 계정. - Sys계정은 최종관리계정으로 마스터권한으로 가지고 있고, System 계정은 .. - ..기억나지 않습니다. 그냥 sys가 짱임.
  • 16.
    4. DBMS 설정및 작업 SQL Developer 셋팅 - SQL Developer로 로컬에 설치된 DB에 접속 - 오라클의 경우 최종관리자 계정은 sys (system 계정은 sys계정과는 다르 게 일반 계정처럼 생각하면 됨) - 설치중 설정한 암호로 db 접속. - sys 계정으로 접속한 후, 테스트로 사용할 사용자 계정 생성. (테스트로 생성 및 사용할 데이터는 모두 사용자 계정에서 작업) - 11시 방향 + 녹색 아이콘 클릭~
  • 17.
    4. DBMS 설정및 작업 SQL Developer 셋팅
  • 18.
    4. DBMS 설정및 작업 SQL Developer 셋팅
  • 19.
    4. DBMS 설정및 작업 SQL Developer 셋팅
  • 20.
    4. DBMS 설정및 작업 SQL Developer 셋팅
  • 21.
    4. DBMS 설정및 작업 SQL Developer 셋팅 커밋이란? Oracle은 데이터를 입력후 커밋을 해야 최종적으로 데이터가 저장됨. 커밋전까지 는 오라클이 데이터를 가지고만 있음.
  • 22.
    5. 웹 설정및 작업 ※ 데이터베이스의 무결성등을 위한 세부적인 설정이 반드시 필요함. 하지만 우리는 유니티 프로그래머잖아?
  • 23.
    5. 웹 설정및 작업 중간다리 역할을 해줄 웹 기반 작업을 하기 전에!!! Form 이 뭔가요?
  • 24.
    5. 웹 설정및 작업 중간다리 역할을 해줄 웹 기반 작업을 하기 전에!!! Get / Post 방식이 뭔가요?
  • 25.
    5. 웹 설정및 작업 Eclipse 설치. - https://www.eclipse.org/downloads/ 에서 다운로드. - JDK 설치. 버전은 SELF. - 웹서버 설정을 위한 Tomcat 다운로드. - 오라클 DB와 연동할 ojdbc14.jar 다운로드. - 유니티에서 JSON 형태로 데이터를 받아야 하므로 json-simple- 1.1.1.jar 다운로드. - 그외 기본적인 환경설정에서 문제가 생기면 구글신에게 기도드리세요. ※ 앞으로의 설명은 웹서버 및 웹프로젝트를 작성하기 위한 설정이 완료 되었다는 가정하에 진행.
  • 26.
    5. 웹 설정및 작업 웹 프로젝트 작성
  • 27.
    5. 웹 설정및 작업 웹 프로젝트 작성
  • 28.
    5. 웹 설정및 작업 웹 프로젝트 작성
  • 29.
    5. 웹 설정및 작업 웹 프로젝트 작성
  • 30.
    5. 웹 설정및 작업 웹 프로젝트 작성
  • 31.
    5. 웹 설정및 작업 웹 프로젝트 작성
  • 32.
    5. 웹 설정및 작업 웹 프로젝트 작성
  • 33.
    5. 웹 설정및 작업 웹 프로젝트 작성
  • 34.
    5. 웹 설정및 작업 웹 프로젝트 작성
  • 35.
    5. 웹 설정및 작업 웹 프로젝트 작성
  • 36.
    5. 웹 설정및 작업 웹 프로젝트 작성
  • 37.
    5. 웹 설정및 작업 웹 프로젝트 작성
  • 38.
    5. 웹 설정및 작업 웹 프로젝트 작성
  • 39.
    5. 웹 설정및 작업 웹 프로젝트 작성
  • 40.
    5. 웹 설정및 작업 웹 프로젝트 작성
  • 41.
    6. 유니티 작업및 최종 테스트 드디어 DB, WEB 설정이 모두 끝! 만세!!!! 하지만 마지막 과정인 유니티가 남았으므로 다음으로 넘어갑시다!
  • 42.
    6. 유니티 작업및 최종 테스트 NGUI를 이용한 기본 화면 구성
  • 43.
    6. 유니티 작업및 최종 테스트 테스트에 사용할 스크립트 작성 싱글턴 패턴을 사용하여 별도의 객체 참조 명령 없이 편하게 접근하도록 작성. Get 방식 및 Post 방식 모두 구현. Post 방식으로 데이터를 전달하기 위해 WWWForm 클래스를 사용하여 Dictionary 제네릭으로 데이터를 받아 Form을 구성.
  • 44.
    6. 유니티 작업및 최종 테스트 테스트에 사용한 스크립트 작성 웹에서 SimpleJson을 검색하면 SimpleJson.cs 형태로 C#스크립트를 받을 수있음. 해당 스크립트를 프로젝트에 넣긔!
  • 45.
    6. 유니티 작업및 최종 테스트 테스트에 사용한 스크립트 작성 테스트를 위한 버튼 스크립트 작성
  • 46.
    6. 유니티 작업및 최종 테스트 WWW 클래스에 대해. isDone : 코루틴 내에서 yield return www 형태로 요청후 대기한 다음 response가 되면 isDone으로 체크 하여 후 처리를 진행할 수 있음.
  • 47.
    6. 유니티 작업및 최종 테스트 Hierarchy에 준비한 스크립트 및 필요한 객체 attach.
  • 48.
    6. 유니티 작업및 최종 테스트 원격접속을 통해 실제 DB 구성 및 JSP 작업 진행내역 확인. 테스트 진행.
  • 49.
    7. 참고사항 - SSL적용된URL 호출시 인증서로 인해 WWW 클래스로 데 이터를 가져오지 못함. - 이로 인해 문제가 생길 경우 아래의 url을 참고하여 구현. - https://github.com/andyburke/UnityHTTP - 1인개발로 게임을 개발하는데.. 서버쪽 지식이 없음.. 이거 어떻게 해야하나.. - 프라우드넷 (http://www.nettention.com/ko/default.aspx) 상용 제품을 고려해보는 것도 하나의 대안이 될수 있음.
  • 50.
    8. 질문의 시간이왔어요. 여러분. Q&A
  • 51.