モノクロタイム

I'm from the future!

【Unity】iTweenというアセットがスゴイ【GUI】

れいじです。

 

今日も今日とてUnity三昧の1日であります。

 

iTweenは割と早い段階から使用しておりましたが、今回少しハマったことがあったのでついでにそれもメモ。

 

 

f:id:yomoyamareiji:20120809211242p:plain

 

iTweenは無料で配布されている、主にGUIやオブジェクトの操作、動作にワンランク上のパフォーマンスを与えるアセットです。

examplesを見ていただければお分かりと思いますが、

自分の手で書こうとするとかなり複雑な処理を、このスクリプトを導入するだけでなんと1行で済ませてしまえる優れものであります。

※examplesにあるコードは有料です。2012年8月現在10ドル。

 

何故私がiTweenを使っていたかというと、

「サーバーから画像・Twitterのつぶやき(テキストのみ)をダウンロードしてくるまでARカメラを起動させないようにしたい」

という指示を頂き、Unityではカメラ自体を制御するのは難しそうだと判断したため、

ブラックのテクスチャを貼り付けたPlaneをカメラが本来映し出すべきテクスチャの上に配置し、「カメラが起動していない」ように見せかけるという事をしていた時に、ただ消えるだけでは味気ないのでPlaneがフェードアウトするような処理を入れたいと指摘を頂いたから。

いやぁ、すごいわiTween。

 

 

ここからはハマったことメモです。

元々スクリプトがJSで書かれていたこともあり、JSで書こうと試みたのですが、ネット上にはC#の例ばかりで苦労しました。

以下は前述のあるPlane(GameObject)をフェードアウトさせるというコードです

 

C#

iTween.FadeTo(GameObject.Find("hoge"), iTween.Hash("alpha", 0, "time", 0.5f));

 

JavaScript

iTween.FadeTo(GameObject.Find("hoge"),{"alpha": 0, "time", 0.5f});

 

引数は公式サイトのリファレンスで。

第一引数についてだけ少し説明を。

第一引数はGameObject型のものが来ます。しばしばthisで表現されますが、この書き方だとHierarchyに存在するGameObject型で、"hoge"と名前を付けられたオブジェクトを探してきて処理対象にする、という書き方になります。

この書き方があまり浸透していないようなので、力技ではありますがご参考までに。

 

JSの方で気をつけるべきことは、Hash値を中括弧でくくるということと、各引数に対する数字や文字列は : (セミコロン)に続けて書くということです。

 

これを間違えるとコンソールがNull祭りになったりPrefabとして作っておいたオブジェクトにITween.csがやたらくっついてきたりとよくわからない自体になります。(実体験)

 

まだ探り探りではありますが、iTweenを使うと他にも色々なことができそうです。

無料で配布されていますので、GUI操作やオブジェクト操作にお悩みの方は是非!

 

公式サイトはこちら

 

http://itween.pixelplacement.com/index.php