明日はいよいよ『ゼルダの伝説 風のタクトHD』の発売日だなー。楽しみです。
さて、ゲーム開発の進捗だが、今日はゲームに使う部品を作っていた。
バトル実装に使うダメージの表示部品だ。
技術的に調べたり実験しなきゃいけないことがたくさんあったので、別プロジェクトとして開発している。
そのほうが疎結合になって再利用性も高まるしね。
どういう部品かというと、ユースケース的に言うと、こうだ。
1.何らかのアクションでゲーム内のあるオブジェクトに対してダメージが発生する。
2.このダメージの値を今日作った部品に渡す。
3.部品のほうでは、ダメージを画像フォントでアニメーションして表示してくれる。
この際、アニメーションは固定だが、表示位置はターゲットのゲームオブジェクトを指定できる。
カメラの表示範囲内なら、3次元空間内のどこにいても、オブジェクトの位置で、かつ一定のサイズでダメージを表示してくれる。
今回苦労したのは、「3次元空間内のどこにいても、オブジェクトの位置で、かつ一定のサイズでダメージを表示」するというミッションだ。
結論としては、カメラクラスにオブジェクトのワールド座標上の位置をビューポートのXYZ座標に変換してくれる便利なメソッドがあったのでそれを使用する、というもの。
そうやって変換した座標をGUITextに渡してやる。
このとき、変換した座標はピクセル値だが、GUITextの座標系は0~1の相対座標なので、再び変換が必要になる。
その方法は、こちらのサイトで知った。
Karasuのアプリ奮闘記 【Unity Tips】 スクリーン座標とワールド座標の切り替えと使用例
Related Posts
カテゴリー: Unity4