-
[Unity Engine] 퍼즐앤 유닛티 - 1. 문자열 테이블2014.08.05 PM 10:53
이제 문자열 테이블을 만들어보자 요즘 모든 프로그래밍은 문자열테이블을 쓰고있다.
혹시 몰라 세계로 진출할지 모르니(...) 문자열 테이블로 관리를 해보자.
사용할 프로그램은 바로 이것이다.
https://docs.google.com/spreadsheets/d/1o3FUsWr2yTbOCYpql_GFYgx1q_sqAKHhvigfm1iMn0A/edit#gid=0
*실시간으로 동기화가 된다.
이런 간단한 게임이지만 이 문자열 테이블로 무엇을 할것인지
결정하는 것은 어렵다.
마침 유니티짱(이하 유닛티...)은 목소리를 지원하고 있으니
퍼즐게임을 하는 것을 바라보며 추임세를 넣도록 해보자.
왠일인지는 모르겠지만 에셋스토어 버젼에서는 목소리가없다.
http://unity-chan.com/
으로 들어가서 다운받으면 패키지안에 목소리 데이터가 있다.
무려 400여개의 샘플이 들어가있는데 안에 리스트가 포함되어 있다.
이것을 기본으로 문자열테이블을 만들것이다.
일단 목소리list가 폴더안에 동봉되어 있으니 복사하여 구글느님한테
가져가서 번역후 스프라이트시트에 붙여넣자.
세개의 필드가 있는데 각열은 다음과 같다.
A열은 파일이름
B열은 목소리내용
C열은 사용용도
일단 다음과 같이 배열을 조정하자
A열 문자열ID
B열 목소리파일이름
C열 사용용도
D열 문자열내용
D열에 위치시킨 이유는
여러가지가 있지만 이후 E열 F열에는
다른나라의 언어가 들어가도록 하기 위해서 이다.
일단은 아이디에 none으로 채워 넣고 필요한 스트링에만
아이디를 채워 넣을 것이다... (노가다중...)
이후 뭔가 필요할것 같은 스트링을 넣어두자 예를 들면...
요런것들을 넣어주자. 번역 + 노가다 + ID작업 + 탈진(..?) 등등으로 꽤 오래걸렸다.
이제 이것들을 불러와서 사용해야 하는데 메뉴에서
File- Download as 로 가보면 csv라는게 있을 것이다.
이것은 column을 ','로 row를 '/n'으로 구분하는 텍스트파일
형식이다. 이걸로 다운로드 받은후에
프로젝트내에서 Resources 폴더를 만든후에 넣어주자.
나중에 파일이름 고치기 귀찮으니 이름은 고치지 않았다.
이것을 보면 텍스트파일이 35KB인 것을 알 수있다.
이 정도면 음.. 잘은 모르겠지만 다 올려도 크게 문제는 안 될 거 같다.
(그림파일 하나의 용량을 생각하면... -_-)
이제 이 파일을 가지고 초기화를 해보자
*계속바뀜...
시트에서 한개의 row를 1개의 piece라고 정의하겠다. 이것을 stringManager를 만들어서
관리하는 형태이다. 안에는 AudioClip로 통합적으로 관리하기 위해서 하나 넣어 놓았다.
여기서 string ID를 지웠는데 dictionay 형태로 관리하려고 한다.
이게 초기화를 해야하는데
이게 정상적인 코드는 아니다. 파일을 직접 접근하려면 Application.persistenceDataPath를 써야하지만
일단 귀찮으니(...) Resources를 사용해서 불러왔다.
그리고 억지로
나중에 작업하고 일단은 이것으로 초기화를 해보자.
이렇게 작업을 해 놓고 잘 불러오는지 확인하기 위해서 Values를 선언하고
Dictionary의 Values를 집어 넣었다. 이렇게 하면 Inspector에서 확인이 가능하다.
잘 불려져 오는 것을 확인할 수 있다.
이제 아이디값으로 접근하여 해당하는 string을 불러올 수 있게 되었다.
파티클추가,
커스텀시스템,
사운드,
크래딧,
메인화면작업,
옵션화면(NGUI, 체크박스, 등등),
오프닝,
admob,
playstore 빌링 시스템
음 내일목표는 사운드, 옵션, 파티클까지
댓글 : 2 개
- 인화
- 2014/08/06 PM 05:47
오디오는 문자랑 따로 관리하시는게 편하지 않으세요? 오디오 기능 자체가 비활성화 되어 잇는 상태에도 매니저에 오디오 그대로 붙어 있어서 ...
- 잘자염
- 2014/08/07 PM 03:34
음 현재는 사용할 것들을 미리 불러와서 사용하고 다 사용한 것들은
약간의 준비기간에 null을 넣고 GC를 풀러오고 있습니다.
용량이 그리 큰 게임이 아니라 그렇게 리소스 신경은 안썻네요 ㅇㅅㅇ;
약간의 준비기간에 null을 넣고 GC를 풀러오고 있습니다.
용량이 그리 큰 게임이 아니라 그렇게 리소스 신경은 안썻네요 ㅇㅅㅇ;
user error : Error. B.