/// <summary> /// クラスチェンジ先のボタン一覧を作成する /// </summary> /// <param name="unit"></param> public void CreateClassChangeButton(Unit unit, ClassChangeDetailWindow classChangeDetailWindow) { //職業がマスターレベルなら転職先は存在しない if (unit.job.jobLevel == JobLevel.MASTER) { //Resources配下からボタンをロード var classChangeButton = (Instantiate(Resources.Load("Prefabs/ClassChangeButton")) as GameObject).transform; //転職先が存在しない場合のボタンを作成 classChangeButton.GetComponent <ClassChangeButton>().DisableInit(); classChangeButton.name = classChangeButton.name.Replace("(Clone)", ""); //classChangeWindowオブジェクトをを探して取得 GameObject canvas = GameObject.Find("Canvas"); classChangeWindow = canvas.transform.Find("ClassChangeDestinationWindow").gameObject; //classChangeWindowオブジェクト配下にprefab作成 classChangeButton.transform.SetParent(classChangeWindow.transform); } else { //転職先が存在する場合は転職先の数だけボタン表示 foreach (var jobname in unit.job.classChangeDestination) { //201724 jobNameからjobを取得してボタンに持たせておく Job job = jobDatabase.FindByJob(jobname); //Resources配下からボタンをロード var classChangeButton = (Instantiate(Resources.Load("Prefabs/ClassChangeButton")) as GameObject).transform; classChangeButton.GetComponent <ClassChangeButton>().Init(job, unit, this, statusManager, classChangeDetailWindow); classChangeButton.name = classChangeButton.name.Replace("(Clone)", ""); //レベルによるボタン無効化処理 if (job.jobLevel == JobLevel.ADEPT) { //中級職ならLv10でないとボタン無効化 if (unit.lv < 10) { classChangeButton.GetComponent <ClassChangeButton>().setDisable("中級職に転職するにはLv10が必要です。"); } } else if (job.jobLevel == JobLevel.MASTER) { //上級職ならLv20でないとボタン無効化 if (unit.lv < 20) { classChangeButton.GetComponent <ClassChangeButton>().setDisable("上級職に転職するにはLv20が必要です。"); } } //classChangeWindowオブジェクトをを探して取得 GameObject canvas = GameObject.Find("Canvas"); classChangeWindow = canvas.transform.Find("ClassChangeDestinationWindow").gameObject; //classChangeWindowオブジェクト配下にprefab作成 classChangeButton.transform.SetParent(classChangeWindow.transform); } } }
//初期化メソッド public void Init(Job job, Unit unit, ClassChangeManager classChangeManager, StatusManager statusManager, ClassChangeDetailWindow classChangeDetailWindow) { this.job = job; this.unitName = unit.name; this.classChangeManager = classChangeManager; this.statusManager = statusManager; this.classChangeDetailWindow = classChangeDetailWindow; //ボタンの文字を設定 classChangeDestinationText.text = job.jobName.ToString(); }