유니티3d 그리고 웹통신
DESCRIPTION
Unity3d 와 WWW 통신TRANSCRIPT
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/de-fault.aspx) 상용 제품을 고려해보는 것도 하나의 대안이 될수 있음 .
8. 질문의 시간이 왔어요 . 여러분 .
Q&A
Thank you.