Unity
UnityDay 11

Unity 通信処理

More than 3 years have passed since last update.


経緯

前々から気になっていたけど後回ししていたHTTP通信について試してみました。


開発環境


  • macbook air 13 2011

  • MAC OSX 10.10.1

  • Unity 4.6

  • Xcode 6.1


WWWクラス

UnityのHTTP通信はWWWクラスで簡単にできることがわかったので、今回はWWWクラスを使って実装します。

公式ドキュメントを参考にしました。


実装

HTTP通信でダウンロードした画像を3DオブジェクトのCubeのテクスチャにして表示します。

Unity上で3Dオブジェクトを作成しC#のソースHttpTest.csを作成します。

そしてCubeにHttpTest.csをドロップし紐付けます。

スクリーンショット 2014-12-11 12.43.46.png

作成したHttpTest.csの実装コード


HttpTest.cs

using UnityEngine;

using System.Collections;

public class HttpTest : MonoBehaviour {

public string url = "http://images.earthcam.com/ec_metros/ourcams/fridays.jpg";
IEnumerator Start() {
WWW www = new WWW(url);
yield return www;
renderer.material.mainTexture = www.texture;
}

// Update is called once per frame
void Update () {

}
}


実行するとCubeの面にダウンロードした画像がテクスチャとして適用されます。

スクリーンショット 2014-12-11 12.44.26.png


まとめ

想像以上に実装コードが少なく直感的だなと思いました。

またiOS、Androidの実機でも特別な設定をせずに確認することができました。

WWWクラスはtexture以外にも下記フォーマットへ自動変換してくれるようです。


  • assetBundle

  • audioClip

  • bytes

  • movie

  • text

  • texture

最近、PlayStationMobileのアカウントを取得したので何かアプリを作ってノウハウを共有したいと思います。