code VR

Unity×VR(132)

スポンサーリンク

//tips

書籍「ネットワークはなぜつながるのか」はおすすめ。技術的なことを体系的にわかりやすく書いている。

//UIをトリガーにしたキャラクター生成修正

UIでのクリック選択をもとにキャラクターを生成させていく。room4シーンからenvシーンに遷移した場合にはキャラクターの生成がうまくいっていない。一方で、ennvシーンのみでplayするときちんと生成されるので、遷移後のスクリプトの流れを確認していく。

SampleSceneenv2スクリプトで下記のように生成の指示を行なっているのでデバッグを入れて、このスクリプトが読み込まれているかを確認する。

public override void OnJoinedRoom()
{
PhotonNetwork.IsMessageQueueRunning = true;

BeforeCount();

// マッチング後、ランダムな位置に自分自身のネットワークオブジェクトを生成する
var v = new Vector3(35,5,120);
PhotonNetwork.Instantiate("Deer", v, Quaternion.identity);

}

こちらは読み込まれていなかった。代わりに一世代前のPenvPlaymove4スクリプトのデバッグが出ているので遷移の際の指定で変更箇所がないか確認する。デバッグからオブジェクトがrabbitであることがわかり、シーンでオブジェクトの位置が変な場所に生成されていることも確認できた。

また、生成はphotoncount内の記載内容で行われていたので、こちらの内容を更新してやれば問題ない。SampleSceneenv2はシーン移動を跨ぐ際には使わなくて良さそう。

内容をphotoncountに反映する。

public void Onflag(string id)
{
if (lobbyPlayerMaxCount == 1)
{
if (id == PhotonNetwork.LocalPlayer.UserId)
{
//numberProp = GameObject.FindWithTag("PlayerNumber").GetComponent<NumberProp>();
numberProp.Humanon();

// マッチング後、ランダムな位置に自分自身のネットワークオブジェクトを生成する
//var v1 = new Vector3(-2, 0.5f,-2);
//GameObject Prefab = PhotonNetwork.Instantiate("GamePlayer1", v1, Quaternion.identity);

Debug.Log("Charachois" + chara);

if (chara == 1)
{
var v = new Vector3(35, 5, 120);
PhotonNetwork.Instantiate("Deer", v, Quaternion.identity);
}

if (chara == 2)
{
var v = new Vector3(35, 5, 120);
PhotonNetwork.Instantiate("Deer", v, Quaternion.identity);
}

StartCoroutine("Turnoffhuman");

Debug.Log("lobbyPlayerMaxCount == 1");
}
//flag = false;
}

if (lobbyPlayerMaxCount == 2)
{
if (id == PhotonNetwork.LocalPlayer.UserId)
{
//numberProp = GameObject.FindWithTag("PlayerNumber").GetComponent<NumberProp>();
numberProp.Faceon();

Debug.Log("Charachois" + chara);

if (chara == 1)
{
var v = new Vector3(34, 5, 121);
PhotonNetwork.Instantiate("Deer", v, Quaternion.identity);
}

if (chara == 2)
{
var v = new Vector3(34, 5, 121);
PhotonNetwork.Instantiate("Deer", v, Quaternion.identity);
}

var vg = new Vector3(35, 5, 115);
PhotonNetwork.Instantiate("Polygonal Golem Orange (1)", vg, Quaternion.identity);

StartCoroutine("Turnoffwolf");

無事に反映された。ただ、時々、もう一体のキャラクターの表示がなされていない状態で反映されるケースが見られる。

ゴーレムの攻撃で一体が消されていた可能性があるので、ゴーレムの初期スポーン位置を離してみたがこれは問題なさそう。

Photon view.mineなどの関係かもしれないので、どちらのクローンが生成されていないのかをそちらで確認していく。ゴーレムが生成されているところを見るとlobbyPlayerMaxCount == 2の方は機能していて、lobbyPlayerMaxCount == 1の方が何らかの要因で無効化されているか調べる。読み込み順序などの問題かもしれない。

人気の記事

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.