2014년 3월 11일 화요일

Unity 개발 시 REST api 호출 방법과 json library 관련 링크 정리

[REST API invoke in Unity]

REST API를 사용하기 위해서는 REST server로 접속, response 획득, response parsing이 필요하고 C#에서 REST API를 위한 library들이 많아서 입맛에 맞는 것을 찾아서 사용해도 될것 으로 보임.

REST API 호출 시 Response를 받아 처리하는 부분을 비동기적으로 처리해야 하는 부분이 있어 co-routine 방식을 사용해야 함 (이 부분은 더 상세하게 봐야 함.)

http://through-the-interface.typepad.com/through_the_interface/2012/04/calling-a-web-service-from-a-unity3d-scene.html
: Unity상에서 WWW class를 사용해서 web-service API를 사용하는 예제

public class ImportSpheres : MonoBehaviour
{
  // The radius of our outer sphere 
  const float radius = 0.8f;

  IEnumerator DownloadSpheres()
  {
    // Pull down the JSON from our web-service 
    WWW w = new WWW(
      "http://apollonian.cloudapp.net/api/spheres/" +
      radius.ToString() + "/7"
    );
    yield return w;

    print("Waiting for sphere definitions\n");

    // Add a wait to make sure we have the definitions 
    yield return new WaitForSeconds(1f); 
    print("Received sphere definitions\n");

    // Extract the spheres from our JSON results 
    ExtractSpheres(w.text);
  } 
  void Start ()
  {
    print("Started sphere import...\n"); 
    StartCoroutine(DownloadSpheres());
  } 
  void ExtractSpheres(string json)
  {
    // Create a JSON object from the text stream 
    JSONObject jo = new JSONObject(json);


http://answers.unity3d.com/questions/11021/how-can-i-send-and-receive-data-to-and-from-a-url.html
: C#, JavaScript에서 GET, POST 사용 예

The normal way of doing this would be to use Get or Post requests via the WWW class or the WWWForm class. If you're making a Get request with parameters added to the end of the url, you'd use code similar to this:
'GET' request In C#
In C# this is a little more complex because of the way that you have to write out coroutines in full. In this example, the initiation of the request is done in "Start". We then hand the WWW object to a coroutine called "WaitForRequest" which waits for the www request to complete.
  1. using UnityEngine;
  2. public class GetURL : MonoBehaviour {
  3. void Start () {
  4. string url = "http://example.com/script.php?var1=value2&var2=value2";
  5. WWW www = new WWW(url);
  6. StartCoroutine(WaitForRequest(www));
  7. }
  8. IEnumerator WaitForRequest(WWW www)
  9. {
  10. yield return www;
  11. // check for errors
  12. if (www.error == null)
  13. {
  14. Debug.Log("WWW Ok!: " + www.data);
  15. } else {
  16. Debug.Log("WWW Error: "+ www.error);
  17. }
  18. }
  19. }
more ▼
answered Feb 03 '10 at 05:24 PM
duck gravatar image
duck ♦♦
45.1k  106  160  425




[JSON Parser]


http://kimstar.pe.kr/blog/74
: JSON 개요 및 예제, 전반적인 내용에 대해서 정리된 글

http://lab.gamecodi.com/board/zboard.php?id=GAMECODILAB_QnA_etc&page=1&sn1&divpage=1&sn=off&ss=on&sc=on&select_arrange=hit&desc=asc&no=2616
: litJSON iOS상 serialization 이슈

여러가지 라이브러리가 있지만 간단한 simpleJSON을 고려..

http://wiki.unity3d.com/index.php/SimpleJSON
: SimpleJSON 사이트

http://blog.naver.com/whostheman?Redirect=Log&logNo=100179607893
: Simple JSON 사용 설명, 토튜님.

{
    "version": "1.0",
    "data": {
        "sampleArray": [
            "string value",
            5,
            {
                "name": "sub object"
            }
        ]
    }
}
  
여기서 sampleArray의 string value에 접근하는 방법을 보자.
 아래와 같이 일단 string 값을 파싱한다.
  
var N = JSON.Parse(the_JSON_string);
그리고 노드(Node)의 이름과 index로 접근이 가능하다.
string val = N["data"]["sampleArray"][0];

댓글 없음:

댓글 쓰기