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

皆さん、ついに、エアラインでも、サブスクリプションが始まったのはご存じですか? まだ実験段階ですが、ANAが、定額全国住み放題サービスを提供する「ADDress」と組んで、国内線を4回まで定額利用可能 ...

2

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

3

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

4

ついに、noteの月間アクティブユーザー数が4400万人(2020年3月時点)に到達しました。 そもそも、「note」とは、クリエイターが、文章やマンガ、写真、音声を投稿することができ、ユーザーはその ...

5

ボードゲームカフェが1日2回転で儲かるという記事をみつけたので興味を持ち、調べてみました。 まずは、需要がどれくらいあるのか、市場のようすからみていきましょう。 世界最大のボードゲーム市場はドイツで、 ...

-code, VR
-,

Copyright© BUSINESS HUNTER , 2023 All Rights Reserved Powered by AFFINGER5.