前の記事はこちら
◆今日やったこと
・プロジェクト全体の構成を再度確認
└間の空いてしまったプロジェクトなので、前まで何をやっていたのかさっぱりわからなかった。まずはその振り返りに時間を使った。まったくモチベの上がらない作業なので、なるべく減らしたい部分である。
・実際にウィンドウで選んだゲームを、作るゲームとしてUIに表示させること
・ゲームが完成した時の報酬を、マスタデータから参照すること
└ゲッターセッターでうまくいかなかったので、メソッドの引数としてマスタのIDを渡した。
Projectクラス:作っているゲームの進捗処理やUIの更新を管理
Proposalクラス:新しく作るゲームの情報や、ゲーム提案フェーズのUIを管理
Buttonクラス:提案フェーズで提案されたゲームを選んだ時にProposalが持っているマスタIDをProjectへ橋渡しする
ButtonクラスにマスタIDを渡し、さらにProjectクラスからButtonクラスへマスタIDを参照したがうまくいかなった。理由は不明だが、下記の通りButtonクラスから直接ProjectクラスへマスタIDを引数として渡したらうまくいった。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
//Buttonクラス //Proposalウィンドウで左のプロジェクトのOKを押したときの処理 public void OnClickAcceptLeft() { //Proposalウィンドウを閉じる this.proposalParent = GameObject.Find("Proposal"); this.proposalParent.GetComponent<Canvas>().enabled = false; //選んだタイトルの情報をラインにぶち込む処理 //Pro1に入った配列番号を取得する this.proposal = FindObjectOfType<Proposal>(); this.tmpPropNum = proposal.GetPro1; //projectクラスでUIを更新させる this.project = FindObjectOfType<Project>(); this.project.DecideProject(**tmpPropNum**); } ----- //Projectクラス //プロジェクトのUI更新する public void DecideProject(**int line1**) { //プロジェクト名の表示 this.projectName.GetComponent<Text>().text = projectMaster.param[line1].Name; this.SetterLine1 = line1; } |
◆課題
・ゲーム内で複数のゲームをラインとして同時に作るとき、それぞれの進捗の仕方はそれぞれのクラスで管理することになる。共通の挙動も多いため、本来ならクラスの継承をつかうべきところな気はするが、新しいことをあんまりやりすぎると時間がかかって集中力が落ち、モチベが下がるので、複数クラスを用意する力業で行こうと思う。継承はまた今度。
◆アイデア
結局自分は絵が描けないため、既存のアセットに頼っている。もちろんうまくはまればよいクオリティのものができるが、ハマるものを探し続けていくうちにモチベが下がっていくことも考えられる。将来的なことを考えると、少しずつでもデザイン作業をやれるようになっていきたい。が、突然イラストを描くのもハードルが高い。ということで、難易度を落としつつチープに見えないためのアイデアとして、UIをエクセルなどのスプレッドシート風にしてみると面白いかもしれない。ゲームのコンセプトにも合致するし。