スクリーンショット 2012-06-10 21.19.14

以前からちょっと気になっていたTwitterとUnityの連携をやってみた。

連携と言っても、認証取って送信のみ。
TLを見るとか、受信系は難易度が跳ね上がると思う(勘)。
TCP/IPの受信系もデリゲート使えないと面倒くさいし。


■Lets Tweet In Unity

まずはUnityのAsset Storeに置いてある無料のTwitterアセット
「Lets Tweet In Unity」を試してみる。

スクリーンショット 2012-06-10 21.33.43


[Unity][Unity3d]Unityで簡単にTwitterに投稿が出来るライブラリ「Lets Tweet in Unity」Add Starjranar(強火で進め)
http://d.hatena.ne.jp/nakamura001/20110730/1312044175

Twitter & Unity(万年素人からGeekへの道)
http://d.hatena.ne.jp/shinriyo/20110911

記事を参考にして、以下の手順を実施
1.[Lets Tweet in Unity]をインポートして[demo]シーンを開く
2.[Create an application">Twitter Developer>Create an application]でアプリケーションを登録

これでTwitterのアプリが登録できたので、次は実際に送信してみた。
1.発行してもらった[consumer_key]と[consumer_secret]をDemoコンポーネントに入力。
2.実行、一番上のボタンを押してPIN取得、「PINを入力してくれ」的な所に入力。
  一番上のボタンのタイトルが自分のTwitter名になる。
3.一番下の入力欄にメッセージを入れて隣のボタンを押してメッセージ送信。

これでとりあえずツイッターにメッセージが飛んだ。

■Lets Tweet In Unity without LINQ

ただし、これはそのままではモバイルでは動かないらしい。
Unityユーザー助け合い所によると、LINQを外すと上手くいくらしい。
URLを参考に(というかコピペ)してTwitterクラスを変更。

Lets Tweet In Unity without LINQ(PASTEBIN)
http://pastebin.com/M55JCmLR

新Twitterクラスに合わせてDemoも修正した。
修正後のファイルは【こちら】

後はLets Tweet In Unityと全く同じ手順を実行。
とりあえずiOS5.1とiOS4.3で動作することは確認した。


■日本語入力の問題

とりあえず送信は成功したけど、実際使ってみると日本語入力に問題があった。

というのも、Unityはダイナミックレンダリングをサポートしていないので、
日本語が使えないのだ。

Unityで日本語フォントを使う(モバイル編)
http://radiumsoftware.tumblr.com/post/4107015526

日本語を使いたければ、日本語をビットマップフォントに直して取得する必要がある。
ただ、フォントは圧縮に不向きなので、パフォーマンスやメモリ量を考えると
登録する文字を絞ることになると思う。

しかしそれでは、登録した文字の数によっては、入力した文字の一部が表示されない
チャットシステムが出来上がってしまう。

これはいただけない。

はてさて。