//tips
//ロビーからの遷移設定
ロビーシーンからenv2シーンへ入室、キャラクター選択を経た後、役職振り分けのUIを表示させ、キャラクター動作を行わせる。
Room4シーンのSceneMoveスクリプトをSceneManager.LoadSceneAsync("Env2", LoadSceneMode.Single);へ変更。
Scenes in buildのシーンの並び替えとenvシーンの追加。ビルドを実行すると片方のシーンでのみenv2へ遷移した。もう片方のシーンは遷移せず。
設置されてあるボタンのクリック内容を確認するとNetworkManagerBスクリプトのpublic void JoinOrCreateRoom()メソッドを読んでいたのでそちらも遷移シーンを変更。prefab化しているものも変更していく。
これで無事にenv2へのシーン遷移はできるようになった。
遷移後にキャラクター選択UI表示を行う。SampleScene3で作成したPickUIcanvas、role canvas,
cahraUIchangeのオブジェクトprefabを利用して組み立てる。
一通り設定は済んだのでroom4から遷移してみる。きちんと遷移作ではUIが表示されている。
ボタンへのスクリプトアタッチが外れているので再設定し、タイマーの数字が0になったら自動で選択されるようにするコードについては確認する。
タイマーの方は、CharaUIchange2スクリプトのseconds=10で10秒以上たった場合の数値を固定した。
void Update()
{
seconds += Time.deltaTime;
if (seconds >= 10f)
{
if (!flag)
{
OpenUi1();
photoncount.BeforeCount();
}
seconds = 10;
}
// 値が変わった時だけテキストUIを更新
if ((int)seconds != (int)oldSeconds)
{
timer.text = (10 - seconds).ToString("f0");
}
oldSeconds = seconds;
}
CharaUIchange2スクリプトの各キャラクターの操作UIを選択表示させる下記箇所がうまく反応していない。
public void Humanoff()
{
childobject = GameObject.FindWithTag("human");
childobject.SetActive(false);
}
public void Wollfoff()
{
childobject = GameObject.FindWithTag("wolf");
childobject.SetActive(false);
}
これらのコードを実行させるコードを組み込んでいなかったので、役割が確定した時点でこれらのコードを実行させる。
現在ロールはphotonCountで制御しており、これに手を加える必要がある。簡易キャラUI操作ボタンはCharaUIchange2で下記のように時差で表示させており、ボタンクリックでphotoncountによるrole判定が行われたタイミングでhumanまたはwolfのボタンを消す方法を考えていく。
IEnumerator thisHide()
{
yield return new WaitForSeconds(2);
ui1.SetActive(true);
yield return new WaitForSeconds(1);
baseui.SetActive(false);
}