code VR

Unity×VR(167)

スポンサーリンク

//tips

//微調整

引き続きTermcheckスクリプトの勝利条件の修正を進める。

Termcheckスクリプトの下記でプレイヤー人数が二人以上になったときにwolfプレイヤーを取得させ、termcheck()メソッドを実行させるようにしているが生成が間に合わず、nullになっているとしたらplayers.Lengthでオブジェクトが取れていることと矛盾してしまう。

if (players.Length>1)
{
gamestart = true;
}

public void termcheck()
{
Winscenemove = GameObject.FindGameObjectWithTag("Wincheck").GetComponent<Winscenemove>();

if (myPlayer == null)
{
Winscenemove.Humanwin();
//SceneManager.LoadScene("humanwin");
}

再度unityのエディターも加えて過程を確認する。

違和感があったのは二人目の入室であるはずなのに一人目とカウントされ、次の入室者が二人目としてwolfのroleを取得したこと。

ただ、3番目であることは正確に認識されているようでDebug.Log(players.Length);には下記のように表示されている。

3
UnityEngine.Debug:Log(Object)
Termcheck:Update() (at Assets/Termcheck.cs:19)

この処理の後にはUIを自身の役のもののみ残すためhumanoffの処理を行なっている。

public void Humanoff()
{
Debug.Log("Humanoff()");
childobject = GameObject.FindWithTag("UICwolf");
childobject.SetActive(false);
Debug.Log(childobject);

}

これは同時にこのタイミングでwolfoffを自分より前に入室したプレイヤーたちが行なっていることを表す。

つまり、最初の一人が余分にいるため、wolfがいない状態でtermcheck();が実行されているので問題が起きていることがわかった。

gamestart はboolなので4人揃ったら実行すればいい(players.Length>3)。これで問題なくなった。

ただ、なぜ最初の一人がrole上認識されていないのかがわからないのでこちらの問題を究明していく。

ルームには全員入室している状態で、キャラクター選択ボタンを押すと、下記2つのメソッドが実行される。OpenUi2()はそのキャラクターのhumanおよびwolfのui表示処理で、BeforeCount()はプレイヤー生成カウント処理となる。

public void BeforeCount()
{
photonView.RPC(nameof(LobbyCount), RpcTarget.AllViaServer, PhotonNetwork.LocalPlayer.UserId);
}

public void OpenUi2()
{
StartCoroutine("thisHide2");
flag = true;
}

BeforeCount()の方にエラーが生じている恐れがあるので内容を確認していく。
Debug.Log(lobbyPlayerMaxCount);の推移を注視していく。

[PunRPC]
public void LobbyCount(string id)
{
lobbyPlayerMaxCount++;

Debug.Log(lobbyPlayerMaxCount);
Onflag(id);
}

最初にピックした場合4人分呼ばれている。

2番目、3番目にピックした場合も試したが問題なく反応した。

選択画面への遷移にタイムラグがあり、それが問題になっている可能性があるので、画面待機時間をもう少し伸ばしてみる。

CharaUIchange2スクリプトの管理秒数を30まで増加させて、30秒経っても選択されていなかったら自動処理するようにした。

if (seconds >= 30f)
{

if (!flag)
{
OpenUi1();
photoncount.BeforeCount();
}

 

人気の記事

1

コロナによる需要変化 コロナパンデミックの影響で、人々は外に出られなくなり、自宅で過ごす時間が増えました。 この自粛ムードの中、下記のようなビジネスの需要変化が引き起こされています。 【利用者減少】 ...

2

米国レストランの決済時に毎日お世話になっていた「Square」のビジネスモデルについて本日はふれていきたいと思います。 「Square」とは、ネットにつながったモバイル端末と専用のカードリーダーを用意 ...

3

無料でネットショップを開けるアプリとして多くの人に驚きを与えたBASE株式会社が、2019年10月25日東証マザーズに上場しました。2020年2月時点で90万店を超えるショップを抱えるまでに成長してい ...

4

2011年にサービスを開始してから圧倒的な成長率を誇るインテリア通販サイト 【FLYMEe/フライミー】を皆さんご存じでしょうか。 「自分のイメージするインテリア、本当に欲しいインテリアがどこにあるの ...

5

ナイキのSNKRSが、なぜこれほどまでに人気なのか?調べてみました。 きっかけは米国での友達との会話。彼は自分のシューズをみせて、「これ20万円もしたんだぜ。」と語ってくれました。 あまり靴に興味がな ...

-code, VR
-,

Copyright© BUSINESS HACKER , 2021 All Rights Reserved Powered by AFFINGER5.