Пример #1
0
    /// <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);
            }
        }
    }
Пример #2
0
    //初期化メソッド
    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();
    }