私は、主にプログラム面で参加しました。
普段の仕事では、ActionScript, JavaScript, PHPを主に使用しています。
3DやC#等、個人的には不慣れな領域でしたが、
インタラクティブなゲームの作り方を含めて非常に勉強になりました。
同時に、チームで物を作る楽しさを改めて実感できて、良い刺激になりました。
以下、メモを箇条書きでつらつら書き、
最後に所感をまとめています。
アニメーションの状態を取得する
var animator: Animator = GetComponent("Animator");
animator.GetCurrentAnimatorStateInfo(0).IsName("wait");
- Create State後に、Inspector上でNew Stateに表記されている文字が入る
- 今回は待機モーションかどうかを取得したかったのでこのように記述
- 返り値はbool
主にプレイヤーキャラのMechanimが矢印だらけでカオスなことになってしまいました。
(モーション間の遷移をユーザーストレスなくやろうとすると...。
この辺りはスクリプトで管理したいなと思いました。
Mechanimをガッツリいじってモーションのタイミング調整したり~があれば、デザイナーさんに依頼しようと思います。
SceneManagerでシーン管理
5.2以前の記述方法だとWarningが出ます。
シーンを読み込む
△ Application.LoadLevel("scene01")
〇 SceneManager.LoadScene("scene01")
現在のシーンファイル名を取得
△ Application.loadedLevelName
〇 SceneManager.GetActiveScene().name
※ 現状、どちらの記述方法でも可能(移行期間っぽい)ですが、近いバージョンでなくなりそうです。
使用していないアセットをアンロード
- Resources.UnloadUnusedAssets();
- 今回はゲームの場面ごとにシーンを作成したので未使用でしたが、今後、中規模以上のゲームをガッツリ作っていく場合、細かいパーツをシーンとして加算ロードなどする場合には必要になりそうです。
作成したシーンの構成
- scene_title
- タイトル用のシーン。3D背景の上に、2Dのロゴ、スタートボタン、操作説明ボタンを表示。
- Player
- JokerScriptを使用したシナリオ再生用シーン。元々ライブラリにあったシーンを使用。
- scene_game
- プレイヤーが主に触ることになるゲーム本編のシーン。
- scene_result
- ゲームの結果を表示するシーン。
プレハブをインスタンス化し、子要素に配置
GameObject obj = (GameObject)Instantiate ~
- 操作説明画像の表示に使用。次回はスライダー等、最適なものを探りたい。
シーンファイルが競合しないように
複数人で触ることになり、何度か競合してしまいました。
シーンファイルはバイナリの為、マージできないようです。
→ シーンごとに作成者を分ければいい?
→ そもそも、シーンをほとんど触らない様な体制で行くのが良い。スクリプトで管理する感じで。
対策?
- Menu > Edit > Project Settings > Editor > Inspector
- Version Control を Visible Meta Files
- Asset Serialization を Force Text
へ変更することで、
シーンファイル、プレハブをテキストエディタで確認できるようになりました。
これでも競合しそうですが..。
プロファイラの使い方
ゲームプレイ時、スマホにたまる熱がヤバかったので何とかしたくて調べましたが、
今回は自分の理解が足りておらず扱えませんでした。。
次回は少しでも理解できるように。
プロジェクト内に新規作成したファイルは、バージョン管理しないと編集できない?
MonoDevelop使用時、キーボードの反応がなくなる(SVNと連携している場合に限る?
MonoDevelopは軽いので使っていましたが、より扱いやすいIDEがあれば乗り換えようと思います。
バージョン管理の話で言うと、次回は勉強もかねてGitを使っていきたいなと思います。
今回は、AWS上にSVNを設置しました。
所感
小規模なものであればデザイナ視点だけでも扱いやすいですが、複数人でUnity上のファイルを編集することになる場合、色々と問題が発生してきました。
中規模以上のコンテンツを作っていくことになる場合(こちらでも書いた通り)プロジェクトで利用するファイルを管理するプログラマの視点で、デザイナと取り組む体制を整える必要がありそう。
また、Unity云々より、プログラミングのスキルが足りていないことを実感。磨く。
個人的には、クライアントサイドよりサーバサイドを学びたい気分が増してきました..。
どんどんチャレンジしていきたいです。