実現したいこと・状況
マルチプレイができるようになる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); } //以下、数字と名前を入れて繰り返し } }
マップのオブジェクトの位置や物をランダムに配置したいと思ってのことですが、
他にいい方法があればそれでも構いません。
ご教授お願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/29 01:19