using UnityEngine;
using System.Collections;
public class SpawnGameObjectsNetwork : Photon.MonoBehaviour
{
public float secondsBetweenSpawning = 0.1f;
public float xMinRange = -25.0f;
public float xMaxRange = 25.0f;
public float yMinRange = 8.0f;
public float yMaxRange = 25.0f;
public float zMinRange = -25.0f;
public float zMaxRange = 25.0f;
public float zMinRange2 = 81.0f;
public float zMaxRange2 = 85.0f;
public string spawnObjects;
Vector3 spawnPosition;
Vector3 spawnPosition2;
public float nextSpawnTime;
void Start()
{
nextSpawnTime = Time.time+secondsBetweenSpawning;
}
void Update()
{
if (PhotonNetwork.isMasterClient)
{
if (Time.time > nextSpawnTime)
{
Vector3 spawnPosition;
Vector3 spawnPosition2;
spawnPosition.x = Random.Range (xMinRange, xMaxRange);
spawnPosition.y = Random.Range (yMinRange, yMaxRange);
spawnPosition.z = Random.Range (zMinRange, zMaxRange);
spawnPosition2.x = Random.Range (xMinRange, xMaxRange);
spawnPosition2.y = Random.Range (yMinRange, yMaxRange);
spawnPosition2.z = Random.Range (zMinRange2, zMaxRange2);
GetComponent<PhotonView>().RPC("MakeThingToSpawn", PhotonTargets.All, spawnPosition, spawnPosition2);
nextSpawnTime = Time.time + secondsBetweenSpawning;
}
}
}
[PunRPC]
void MakeThingToSpawn(Vector3 spawnPosition, Vector3 spawnPosition2)
{
GameObject spawnedObject = PhotonNetwork.Instantiate(spawnObjects, spawnPosition, transform.rotation, 0) as GameObject;
GameObject spawnedObject2 = PhotonNetwork.Instantiate(spawnObjects, spawnPosition2, transform.rotation, 0) as GameObject;
}
}
このコードは、プレーヤプレハブに取り付けられ、2つのオブジェクトが作成され、 同じ場所に、WICHは、両方のすべてのプレーヤーのために表示されています。 1人のプレーヤーはこれらのオブジェクトの1つを に移動することができ、もう一方を制御することはできません。状況 は2番目のプレーヤーの反対です。どのようにそれを行うには は、(私は持っている 別のスクリプトで)制御することができる1つのインスタンス化されたオブジェクトだけですすべての選手?Photon Unity Networkでゲームオブジェクトを正しくインスタンス化する方法は?
おかげであなたの答えのために、生憎i'veはすでにPhotonNetwork.InstantiateSceneObject()、およびtransferingOwnershipを試してみましたが、それは私の問題を解決didn'tの、私はこの問題は、おそらくあると思います私の "つかむオブジェクト"のスクリプトで。 –