【Hack a Week(2/2)】UnityからAPIリクエストを送る

概要

今週はUnityのサンプルを作る活動をしました!

目次

今週のHack a Week: UnityからAPIリクエストを送る

この2週間のアウトプット目標は、「UnityからAPIリクエストを送る」です。
最近はUnityのタスクを仕事で拾えるぐらいになりたいなと思い、Unityの勉強をやっています。

Hack a Weekの成果

今回は、HTTPリクエストをUnityから送るサンプルを簡単に作りました。
叩いたAPIは、気象庁のAPIです。正式なAPIというわけではないですが、天気予報情報をJSON形式で取得することができます。

https://qiita.com/youtoy/items/932bc48b03ced5a45c71

HTTPリクエストを試すことが今回の目的ですので、とりあえず気象庁辺りが何かAPIを用意していないのかな?と思い探したところ見つけました。

コードは、こんな感じの処理を書きました

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
using System.Collections;
using System.Collections.Generic;
using System.Net;
using UnityEngine;
using UnityEngine.Networking;

public class HTTPRequest : MonoBehaviour
{
void Start()
{
Debug.Log("start");
StartCoroutine(GetText());
}

IEnumerator GetText()
{
UnityWebRequest www =
UnityWebRequest.Get("https://www.jma.go.jp/bosai/forecast/data/overview_forecast/130000.json");
yield return www.SendWebRequest();

if (www.result != UnityWebRequest.Result.Success)
{
Debug.Log(www.error);
}
else
{
// 結果をテキストで表示
Debug.Log(www.downloadHandler.text);

// または、バイナリデータとして結果を取得します。
byte[] result = www.downloadHandler.data;
}
}
}

StartCorutineとは何者なのか?

こちらのコードは、Unityのドキュメントから引っ張ってきたコードです。
内容自体は簡単で、とてもすんなり読めるコードです。ただ、Unityにあまり馴染みのない私にとっては、StartCorutineってなんだ?となりました。

これは、コルーチンをスタートするための処理です。
https://docs.unity3d.com/ScriptReference/MonoBehaviour.StartCoroutine.html
https://docs.unity3d.com/ja/2018.4/Manual/Coroutines.html

コルーチンとは、処理を一時停止し、実行途中の状態を次フレームに持ち越すことができる仕組みです。
こちらの、とりすーぷ氏のZennの解説がとてもわかり易かった
https://zenn.dev/torisoup/articles/coroutine_01

Hack a Weekの成果

  • UnityでのHTTPリクエストと、コルーチンを理解できた
    本職で最近触っているUnityProjectでも、UnityEngine.Networkingを呼び出している箇所があり、今回手を動かしてみることで理解できる範囲が増えました。

次回

次回は、Reactのドキュメントをがっつり読んで、React完全理解を目指してみようと思います。

【Hack a Week(2/2)】UnityからAPIリクエストを送る

https://yuniyuni.work/2024/04/16/2024-04-15/

Author

慕狼ゆに

Posted on

2024-04-16

Updated on

2024-04-23

Licensed under

コメント