ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

プロジェクト15

HoloLens対応

今作っているプロジェクトはもともとVRに対応させる予定だったが、HoloLensにも対応させることにしよう。 UnityでHoloLens用のアプリを作ることが出来るし。 とはいえ、全然MRらしいものでは無いけれども。

ログ出力

意図しない動作を調べるために各オブジェクトの挙動をログ出力で追いかけてみた。 結局、オブジェクトの挙動自体は正しくて、その前のオブジェクトを作る段階でまずい処理があって、そちらが原因だった。 ログ出力しながら実行するとけっこう処理が重くなる…

テストデータ

1ターンの処理が自分が想定していたのと違う動きをするのでデバッグ中。 適当にランダムに用意したデータではわかりにくいので、デバッグ用のテストデータを作成。想定した動きの条件に合うようなデータを作ってテスト中。

1ターンの処理

1ターンの処理を実装中。 今はそれほどオブジェクトが少ない段階で試しているけど、もっと大量にオブジェクトがあったほうが見た目は面白くなりそう。でもそうすると今のやり方だとかなり処理が重くなりそう。 とりあえずは今のまま実装してみて、重くなって…

1ターン

ゲームの1ターンの更新部分を実装中。 まだどのくらいの時間で1ターンが更新されるか決めていないので、とりあえず、キー入力があったら更新するようにテスト中。 実際に時間で更新するようになっても、更新時間を自由に変更できるようにしたほうが良さそう…

シーンビュー

キューブをゲームマネージャーで複数作成して配置。 ちゃんと配置できているか確認するためにデバッグカメラの実装が必要かなと思ったけど、Unityのシーンビューで確認すればいいことに気が付いた。 こういう発想にすぐならないところがゲームエンジンにまだ…

アロー演算子

ゲームマネージャー経由で別のキューブの情報を参照する部分を実装。 キューブのスクリプトからゲームマネージャーのメソッドを呼び出そうとして、思わずアロー演算子で書いてしまった。C#なのだから、ポインタは使わないで済むというのに。

世界の座標系

キューブを生成し、ゲームマネージャーで保持するように実装した。 ここでふと、座標系について悩む。 やはり世界の中心は原点にしておいたほうが良いだろうか。X,Y,Z軸すべてプラスの世界のほうが処理は楽なような気もするが。でもやっぱり中心が原点で0の…

キューブ生成

ゲームマネージャーからキューブを生成できるように実装。 そのキューブからゲームマネージャーを参照できるようにしたいのだが、どう実装すれば良いのだろう。 とここまで書いて、キューブのオブジェクトとスクリプトを混在して勘違いしていたことに気がつ…

デバッグ用にキー入力

キーボードの特定のキーを押したらデバッグ用のコードを実行するようにした。 キーボードの入力判定はInputを使う。(id:toburau:20140724) 特殊なキーではなく通常の文字キーを判定したい場合はその文字を指定することでできる。例えばaキーを判定したい場合…

各オブジェクトのアクセス

各オブジェクトの連携をどのように実装するかで悩む。 Unityの本に載っていたサンプルはどのようにやっているか見てみたところ、シーンコントローラーやレベルコントローラーが用意されており、それ経由でアクセスしているようだ。 それぞれへのアクセスは毎…

意図

Unityでの制作を再開。 ちょっと間が空いてしまったので、どこまで実装したのかすっかり忘れており、なぜこのゲームオブジェクトを作ったのかとか、プロパティの値をどうしてこの値にしたのかと思い出せない。 ソースコードならコメントを入れておくことがで…

Visual Studioのエディタ

シーン上に配置するオブジェクトを生成していく部分を実装。 いくつも繰り返すのでコルーチンを使って実装。最初実装の仕方を勘違いしていた。やっぱり使っていないと細かいところは忘れてしまう。 今回のプロジェクトからVisual Studio上のエディタを使って…

オブジェクトの削除

オブジェクトをスクリプトで削除するにはDestroyを使う。 Object.Destroy - Unity スクリプトリファレンス 引数には削除するオブジェクトと何秒後に削除するか指定する。 Destroy(gameObject,1.0f); // 1秒後に削除 ここで注意しなくてはいけないのは、 Dest…

オブジェクトの生成

オブジェクトをスクリプトで生成するにはInstantiateを使う。 Object.Instantiate - Unity スクリプトリファレンス 引数には生成するゲームオブジェクト、座標と回転が指定できる。 public GameOjbect cube; void func() { Instantiate(cube, new Vector3(0,…

カメラ位置

ゲームオブジェクトをいくつか配置してみるも、実行すると消えてしまう。 なぜかと調べてみたら、表示されていないのではなく、カメラから映らない位置に出ていた。 オブジェクトのスクリプトにテストで書いた適当な座標を設定するコードが残ったままだった。…

コード消える

空のGameObjectを作成して、そこにスクリプトを追加して、GameManager的な処理をしようとコードを追加。 コードを書いていたらエラーが出たので、どう修正しようかなと考えていたところ、ProjectのAssetsフォルダにスクリプトが置かれていたことに気付く。ス…

プレハブ化

配置したキューブはいくつも使うことになるので、プレハブとして登録。 C++で例えるとプレハブがクラスで、実際にシーンに配置したのがインスタンスといったところか。 プレハブのマテリアルを変更すると、シーンに配置したインスタンスもすべて同じように変…

スクリプトで座標移動

Cubeにスクリプトを追加して、座標移動のコードを追加。 ついつい、直接プロパティに値を入れようとしてエラーで怒られる。一度変数にコピーしてからでないと設定できないのを忘れていた。(id:toburau:20160124) そして正しく変更したと思うのにVisual Studi…

画面レイアウト

とりあえず、Cubeを配置するところから始める。 使いやすいように画面レイアウトをどうしようかと悩む。 とりあえずはデフォルトのまま使って、適宜変更していくことにしよう。

開始

プロジェクト15を開始。 今度はUnityを使って3Dアプリケーションを作成。VRにも対応できるようにする予定。