質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Q&A

解決済

1回答

1121閲覧

PhotonNetworkのインスタンス対象をGameObject[]からランダムに選択したい

inumosukii

総合スコア12

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

0グッド

1クリップ

投稿2019/01/26 17:16

実現したいこと・状況

マルチプレイができるようになるPhotonのサービスに、インスタンスを行うコード(?)がありますが、オブジェクトの選択がstringじゃないとできないようです。
GameObject[]でインスタンスしたいオブジェクトをリストにしてその中からランダムで生成したいと思っていますが、Random.Range()でリストから取得する場合はint型になってしまいます。

public class test : MonoBehaviour { public GameObject[] target; int kazu; private void Update() { while (kazu < 3) { Seisei(); kazu += 1; } } public void Seisei() { var OB = Random.Range(0, target.Length); //"string"の部分をtarget[OB]とするとエラーになる。string型じゃないとダメらしい。     PhotonNetwork.InstantiateSceneObject("string", new Vector3(0, 0, 0), Quaternion.identity, 0, null); } }

この"string"の部分にGameObject[]のランダムなオブジェクトの名前を入れる方法が知りたいです。

string obj = OB.name; //これだとint型をstring型に入れようとしているためエラーとなる。

仕方がないので今はこうしています。

public class test : MonoBehaviour { int kazu; private void Update() { while (kazu < 300) { Seisei(); kazu += 1; } } public void Seisei() { float S = Random.Range(1, 30); if (S == 1) { PhotonNetwork.InstantiateSceneObject("iwa1", new Vector3(0, 0, 0), Quaternion.identity, 0, null); } if (S == 2) { PhotonNetwork.InstantiateSceneObject("iwa2", new Vector3(0, 0, 0), Quaternion.identity, 0, null); } if (S == 3) { PhotonNetwork.InstantiateSceneObject("iwa3", new Vector3(0, 0, 0), Quaternion.identity, 0, null); } if (S == 4) { PhotonNetwork.InstantiateSceneObject("kusa1", new Vector3(0, 0, 0), Quaternion.identity, 0, null); } if (S == 5) { PhotonNetwork.InstantiateSceneObject("kusa2", new Vector3(0, 0, 0), Quaternion.identity, 0, null); } //以下、数字と名前を入れて繰り返し } }

マップのオブジェクトの位置や物をランダムに配置したいと思ってのことですが、
他にいい方法があればそれでも構いません。

ご教授お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

オブジェクトの名前が入ればいいなら
PhotonNetwork.InstantiateSceneObject(target[OB].name, new Vector3(0, 0, 0), Quaternion.identity, 0, null);
で出来ませんかね?

投稿2019/01/28 04:07

sakura_hana

総合スコア11425

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

inumosukii

2019/01/29 01:19

できました!! こんな単純なことにも気づかなかったなんて…w おかげさまで大量にコードを書かなくて済みそうです! ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問