本Qiitaについて
Unity向けWebSocketのBuild方法と使いかたについて記載しています。
関連Qiita
- DayDream開発機の設定
- UnityでのDayDreamデモアプリのBuild
- DayDream Readyのスマフォ
- DayDream開発機の作り方
- DayDream関連リンク
- UnityでRESTでアクセス
- UnityのJsonUtilityでJSON配列を処理する
Editorの用意
Unity付属のMonoDevelopだと、うまくBuildかからなかったので、下記URLより最新のXamarin Studioをダウンロードしてくる。
Mono for Mac OS X もダウンロードして、インストールする。
WebSocketのライブラリ
WebSocketのライブラリは、Websocket-sharpを使用する。
ローカルにGit cloineするか、ZIPをダウンロードして解凍する。
websocket-sharp.slnをXamarin Studioで開く。

Build
Release Buildをおこなう。

websocket-sharp-master>websocket-sharp>obj>Releaseに、websocket-sharp.dll が生成される。

Unityへのdllの取り込み


生成された websocket-sharp.dll をAssets>Plugins>websocket にドラッグ&ドロップする。

WebSocketにアクセスするためのコード
using UnityEngine;
using System.Collections;
using WebSocketSharp;
public class WebSocketClient: MonoBehaviour {
private WebSocket ws;
void Start()
{
// WebSocketのechoサーバ.
this.ws = new WebSocket("ws://echo.websocket.org");
// WebSocketをOpen.
this.ws.OnOpen += (sender, e) =>
{
Debug.Log("[WS] Open");
ws.Send ("Hi WebSocket");
};
// メッセージを受信.
this.ws.OnMessage += (sender, e) =>
{
Debug.Log("[WS]Receive message: " + e.Data);
};
// WebSoketにErrorが発生.
this.ws.OnError += (sender, e) =>
{
Debug.Log("[WS]Error: " + e.Message);
};
// WebSocketがClose.
this.ws.OnClose += (sender, e) =>
{
Debug.Log("[WS]Close");
};
// WebSocketに接続.
ws.Connect();
}
void OnDestroy()
{
this.ws.Close();
}
}