Category Archives: Unity3D

Unity3D story

Unity3D + Facebook + Parse.com 재밌다~

Unity3D + Facebook + Parse.com  연동 작업을 해보고 있는데

 

재밌다! ㅎㅎㅎ

 

Parse.com 문서를 보면서 하고 있는데

간만에 시간 가는줄 모르고 빠져들어 코딩했네…

 

프레임웍을 하나 짜서

앞으로 출시할 내 개인 게임들에 적용해야겠다.

(tedhome 의 게임들은 전부 Facebook 연동으로 가는거다.)(카카오따위 개나줘)

 

안까먹게 잘 정리해서 포스팅 해야겠다. :)

 

[Unity3D] iTween 에서 Hashtable 사용하기

iTween 을 쓸 때 저는 Hashtable 을 이용해 인자값을 넘기는 방법을 주로 사용합니다.

굉장히 단순하면서 직관적이기 때문이지요.

Hashtable 을 생성하고 -> Hash에 인자 값을 추가하고 -> iTween  함수에 넘겨주면 끝입니다.

iTween.MoveTo 함수를 예로 들어보겠습니다.

Vector3 target = new Vector3(0,0,0); // 목표점
Hashtable hash = new Hashtable();
hash.Add("position", target); // 이동 할 위치
hash.Add("speed", 3.0f); // 이동 속도 (작을수록 느림)
hash.Add("easetype", iTween.EaseType.linear); // 보간법
hash.Add("onstart", "OnItweenStart"); // iTween 이 시작 될 때 호출될 함수 지정
hash.Add("onupdate", "OnItweenUpdate"); // iTween의 동작 단계별로 호출될 함수 지정
hash.Add("oncomplete", "OnItweenEnd"); // iTween의 동작이 끝났을 때 호출될 함수 지정
iTween.MoveTo(gameObject, hash); //인자 넘겨주기

 

위의 코드 처럼 구현하면 됩니다.

각 인자들은 생략이 가능합니다만

애니메이션을 구현하는데 필요한 기본적인 인자들은 넣어주어야 겠지요?

(이동을 시키는데 목표점과 속도는 있어야 겠지요? ㅎㅎ;;)

 

iTween 은 다양한 애니메이션 함수를 지원하는데

각 함수마다 필요한 인자의 종류가 다릅니다.

이것은 iTween 공식 문서를 참고하시기 바랍니다 :)

iTween Documentation

 

by Ted, 201403

 

[Unity3D] JSONObject 다운로드 & 사용법

이전 포스팅에서 언급한 더 간단한 Json 라이브러리인 JSONObject 사용법에 대해 알아보자.

우선 다운로드는 에셋스토어에서 Json Object 로 검색해 설치해도 되고
JSONObject wiki (http://wiki.unity3d.com/index.php/JSONObject#Download) 에서 다운로드 받을 수 있다.

다운 받아 압축풀고 Assets 폴더에 넣으면 설치는 끝.

문법

 

//1. Json string 을 JsonObject 로 변환
        JSONObject obj = new JSONObject(response.Text);
//2.JsonObject 를 Dictionary 로 변환
        Dictionary<string, string> dic = obj.ToDictionary();

// 3.빈 JsonObject 생성
        JSONObject j = new JSONObject(JSONObject.Type.OBJECT);
//4.항목추가
        j.AddField("field1", "sampletext");
//5.array 만들기
        JSONObject arr = new JSONObject(JSONObject.Type.ARRAY);
        j.AddField("field2", arr);
        arr.Add(1);
        arr.Add(2);
        arr.Add(3);
//6.항목 삭제
        j.RemoveField("field1");
//7.JsonObject 을 Json 문자열로 변환
        string encodedString = j.Print();

 

끝.

 

더 간단하다.

 

간단해서 마음에 든다  ㅎㅎ;;

[Unity3D] JsonFX 다운로드 & 사용법

 

Unity3D 에서 사용할 수 있는 Json 라이브러리 중 JsonFX 의 간단한 사용법.

우선 공식 사이트는 www.jsonfx.net  이다.

첨부된 파일을 다운 받아 Assets 내에 Plugins 폴더에 넣으면 자동으로 import 된다.

 

[ 다운로드 : JsonFx.zip ]

(이 dll 파일 구하기가 왜이리 어려운건지;;; 겨우 찾아냄..;;; )

문법

– Object 를 Json String 형태로 변환

string jsonString = JsonFx.Json.JsonWriter.Serialize(OBJECT);

 

– Json String 을 Object 로 변환

MyData data = JsonFx.Json.JsonReader.Deserialize<MyData>(jsonStr);

끝.

진짜 간단하고 강력하다. -_- b

사실 더 간단한 JsonObject 라는 녀석이 있는데 그건 다음 포스팅에서 알아본다.

[Unity3D] Facebook – Key Hash doesnt match any stored key hashes

유니티에서 만든 페이스북 앱을

안드로이드 디바이스에 넣고 로그인을 시도할 때

로그인이 안되면 우선 AndroidSDK 에서 제공하는 DDMS 로

로그를 확인하자.

그 중

com.facebook.http.protocol.ApiException : Key Hash doesnt match any stored key hashes

뭐 이런게 나오는 경우가 있는데

이건 App 에 저장된 KeyHash 와 Facebook App Setting 페이지에 저장된 keyHash가 다르다는 얘기다.

근데 문제는 유니티-Facebook-Edit Settings 에서 생성된 KeyHash 를 넣어도 안된다는 건데

근본적인 원인을 찾으려면 너무 복잡해서 간단한게 해결했다.
(내 생각엔 키생성시 OpenSSL 에서 사용하는 암호화 방법이 뭔가 다른거 같다.)

 

 

해결법 :

DDMS 에서 로그를 위로 쭉 올려서 살피다 보면

FBUnitySDK 라는 Tag 가 달린 로그중 KeyHash : 어쩌구 라는 걸 찾을 수 있다.

여기에 적힌 KeyHash 를 복사해서 Facebook App Setting 페이지에 하나 더 추가해준다.

그리고 나면 잘 작동된다.

 

아직 Facebook SDK for Unity3D는 뭔가 불완전한 것 같다.

 

[Unity3D] FacebookSDK 사용시 debug.keystore 파일을 못찾을 때

FacebookAndroidUtil.cs 파일에 62번 라인이

debug.keystore 파일의 경로를 지정해 주는 건데

이게 잘못되어있을 경우가 있다.

기존 :

System.Environment.GetEnvironmentVariable(“HOMEPATH”) + @”\.android\debug.keystore” :

 

이것을 다음과 같이 수정한다.

System.Environment.GetEnvironmentVariable(“HOMEDRIVE”) + System.Environment.GetEnvironmentVariable(“HOMEPATH”) + @”\.android\debug.keystore” :

 

 

[Unity3D] Facebook SDK – Debug Android Key Hash 생성

1. OpenSSL 다운로드 – https://code.google.com/p/openssl-for-windows/downloads/list 

2. JDK 가 설치된 폴더 안에 압축 풀기

3. cmd 실행 후 openssl.exe 파일이 있는 위치로 이동

4. keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl.exe sha1 -binary | openssl.exe base64 입력 후 엔터

5. 비밀번호를 묻는데  android  라고 치면 됨

6. 생성된 Key Hash 사용