UnityのC#でXMLを読み込む。

writer : uxicカテゴリー unityタグ ,

xmlデータを取得して内容を読み込むことができると、例えばTwitterのタイムラインを表示させたりブログの記事を読み込んだりと、様々なWEBアプリケーションと連携することができて夢が広がります。

javascriptならxmlを簡単に読み込める形にしてくれる外部jsを読み込むか、C#ならxmlクラスがあるのでそれを使います。で、javascriptだと日本語の情報が無いのもありなかなかうまくいかないので、どうせならということでC#でやってみました。

Twitterのタイムラインのxmlについて

読み込むxmlはTwitterのタイムラインの方が今っぽいですかね。
以下のアドレスで@motar_24のTweet(20件)がXML形式で取得できます。ブラウザのアドレスに直接打っても確認できますが、safariだと改行されずそのまま表示されます。Chromeだと整形して表示してくれますね。

http://twitter.com/statuses/user_timeline/motar_24.xml

XMLの記述内容についてはここでは省略しますが、タグで囲まれているTweetテキストがあるのがわかると思います。このテキストを引っ張ってきて表示させるわけです。
注意点として、ローカルからならTwitterのAPIにアクセス(XMLを取得)できますが、Unityのプロジェクトがウェブに公開される場合(webプレーヤー)はクロスドメインの関係で取得できないようです。flashの場合はphpをかましてできるみたいですが、Unityはわかりません。
http://d.hatena.ne.jp/nakamura001/20110730/1312044175

XMLを取得するC#

Macでやりたい場合は、Monoをインストールする必要があります。
mono

Windowsの場合、7やVistaなら問題ないですが、XPなら.NET Frameworkをインストールする必要があるかもしれません。

内容をコメントしてあるので参考にしてください。

using UnityEngine;
using System.Collections;
using System.IO;// 追加で記述
using System.Xml;// 追加で記述

public class XMLLoder : MonoBehaviour {

	// TwitterのxmlデータのURL
	string XMLFilePath = "http://twitter.com/statuses/user_timeline/motar_24.xml";

	XmlDocument doc;// XMLオブジェクト
	XmlNodeList nodeListtext;//テキストの配列

	void Start () {
		doc = new XmlDocument();// XMLオブジェクトを生成
		doc.Load(XMLFilePath);// XMLのファイルを読み込む

		// 全部配列
		nodeListtext = doc.SelectNodes("statuses/status/text");// テキストの配列のできあがり

		// あとは配列を読み込むだけ
		Debug.Log(nodeListtext[0].InnerText);

	}
}

上記のスクリプトをコピペしてGameObjectとかに貼りつけてプレビューすれば、ConsoleにTweetが表示されているはずです。
実際に使うときにはGUI.Labelに入れたりします。できてしまえば簡単ですね!


コメントはまだありません »

コメントはまだありません。

この投稿へのコメントの RSS フィード。 TrackBack URL

コメントする

meta