code VR

Unity×VR(147)

スポンサーリンク

//tips

投稿エラーになってたのでこちら前日のものを再度アップ

嶋津様打ち合わせ
Propertyは変数と関数の中間で、処理を入れられる変数と考えるという点でしっくりきた。数値の変数の場合は基本的にはprivateを使用し、propertyでpublicの役割を担わせる。

//Gohlemシステム同期

ゲーム終了条件であるゴーレムソウルの獲得と提出の部分を修正する。GolemfollowスクリプトのDropgolemitem()がうまく実行できず、オブジェクトをうまくドロップできないので確認する。

同期設定はされていないのでそこがネックになっているかを確認する。

デバッグすると Debug.Log(gameObject.name);部分はきちんとPolygonal Golem Orange (1)を取得できているのでgameObject.name == "Polygonal Golem Orange (1)”)という条件がおかしいことがわかる。

if (hp <= 0)
{
Debug.Log(gameObject.name);

if (gameObject.name == "Polygonal Golem Orange (1)")
{
Debug.Log("GohlemSoul");

Golemfollow Golemfollow = GameObject.Find("GolemOrangefollow").GetComponent<Golemfollow>();
Golemfollow.Dropgolemitem();
}

photonView.RPC(nameof(DestroyObj), RpcTarget.All);
//Destroy(this.gameObject); //ゲームオブジェクトが破壊される

}

名前をコンソールに表示されるものへ若干変更。(gameObject.name == "Polygonal Golem Orange (1)(Clone)”)これで無事にtrueが帰ってきた。

UnityException: Tag: GolemSoulCounter is not defined.
UnityEngine.GameObject.FindWithTag (System.String tag) (at /Users/builduser/buildslave/unity/build/Runtime/Export/GameObject.bindings.cs:194)
GolemSouldrop.Start () (at Assets/MoveEnemy/GolemSouldrop.cs:37)

Golemとgohlemの文字が混在しており、ミスの原因となっているgolemが正しい泥人形。

左上のカウンターには獲得soul数が表示されるようになったが、カウンターを押し、soulを表示させようとすると下記のエラーが発生。

NullReferenceException: Object reference not set to an instance of an object
GolemSouldrop.ReDropgolemitem () (at Assets/MoveEnemy/GolemSouldrop.cs:65)

この時点ではGolemSoulDropオブジェクトは非表示になっているのでメソッドにアクセスできないということが考えられる。

まずゴーレム破壊時のオブジェクト落下の接触があるか確認するためDebug.Log("HitGohlemSoulDrop”);をsoulオブジェクトのGolemSouldropスクリプトOnCollisionEnter内に設置する。また、シーン設置されているGolemOrangefollowもprefab生成するため削除した。

この際に下記のエラーが出た。

NullReferenceException: Object reference not set to an instance of an object
HPScript2.OnTriggerEnter (UnityEngine.Collider other) (at Assets/HPScript2.cs:183)

(Clone)を索敵名に追加。

これで無事にゴーレムソウルをゴーレム消滅後発生させることができた。

ただ、発生場所がゴーレムの初期スポーン位置になってしまっていること、ソウルを獲得すると2獲得したことになってしまうこと、ソウルを獲得したプレイヤーが再ドロップしようとした場合に地中にソウルが埋まっており、ドロップできないことなどの問題があるのでそちらも解決する。

Golemfollowスクリプト内のgolem = GameObject.Find("Polygonal Golem Orange (1)(Clone)”);を修正し、正常な位置からソウルをドロップさせる。

正常な位置からドロップさせることはできたので、プレイヤーが再ドロップできるような仕組みを整える。

現在のGolemSouldropスクリプトの Debug.Log(targetobj);がnullになっているので、プレイヤーの頭上にソウルを移動させることができていない。

ソウルに接触したオブジェクトを特定し、再度参照できるようにした。Golemsoulcounterのカウンターをクリックした際にGolemSouldropスクリプトのReDropgolemitem()メソッドを実行させる必要があるが、prefab生成にしたためUIクリックからソウルオブジェクトにアクセスできなくなっている。UIからオブジェクトへのアクセス方法を新たに考える。

人気の記事

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.