2013年7月22日月曜日

[Unity]画面の中央にオブジェクトを移動

クリックしたら画面の中央にぐぐぐっとオブジェクトを持ってくる演出をしたかった。
あれこれ調べて頭が痛くなったけれど、突然ひらめいた!!
そういえば今作ってる奴、画面の中央=カメラのポジションだったわww

移動量も割り算すればなめらかねぇ〜〜。
以下をUpdateで回した。

mobeObj.transform.position += new Vector3(
(uiCamera.transform.position.x - mobeObj.transform.position.x) / 8
(uiCamera.transform.position.y - mobeObj.transform.position.y) / 8,

0);

2013年7月18日木曜日

[Unity]アニメーションの逆再生

Unityのアニメーション機能で、再生したアニメーションを逆再生させたかった。
面倒だったのでメモ。

【参考にした記事】
HELP!! Animation wont reverse.. - Unity Answers
http://answers.unity3d.com/questions/43915/help-animation-wont-reverse.html

つまり、
animation["hogehoge"].time で、アニメーション開始位置
animation["hogehoge"].speed で、アニメーション再生速度を指定できると。
んで、指定した後に、
animation.play("hogehoge");
で、その通りに再生される。

なので、逆再生にしたければ speed に - 1 を入れて再生すればおk。

注意点としては、一度アニメーションの開始位置と再生速度を指定すると
ずっと覚えてる点。
通常再生のつもりで呼び出しても、逆再生の設定をしていると逆再生のまま Playされる。

上のリンク先のように、通常再生?逆再生?で分岐させて使うといい。

2013年7月6日土曜日

[mmf2]時間の計算

5分経ったら1回復・・・・ というような、よくあるゲームアプリを開発しようと思ってたら
超苦労したので方法をメモ。 

5分経ったら回復を実装するには?

1、プレイ中に現在の時間を秒で保存
2、起動時に保存された秒の時間と、現在の時間を比較
3、5分(300秒)の倍数分、回復させる。

さて実装

いざ実装しようと思ったら、「日付&時間」オブジェクトしか時間を知るすべがないじゃないですか。 で、そこから取得できるのが、現在の「年、月、日、時間、分、秒」とかそんな単位。
このままでは、秒を割り出せません。
いや、頑張れば出来るのかもしれないけど、何年に2月の日数は幾つ?とか計算し出したら、膨大な処理になっちゃう。
(とくにmmf2は・・・)

解決方法

アメリカのフォーラムを探してみたら、素敵なextensionを発見!!

このextensionをインストールすれば、Unix Time を取得できるようになります。
UnixTimeとは、1970年1月1日からの経過時間なのです!
これを使えば、上記秒数の差分を取得できますね。


疲れた・・・
この問題解決に3時間も掛けてしまった(´・ω・`)