using UnityEngine;
using UnityStandardAssets.Characters.FirstPerson;
public class NetworkPlayerManager : Photon.MonoBehaviour
{
public delegate void Respawn(float time); public event Respawn RespawnMe; public int life = 100; void Start() { if (photonView.isMine) { GetComponent<Rigidbody>().useGravity = true; GetComponent<FirstPersonController>().enabled = true; GetComponentInChildren<ScoreManager>().enabled = true; GetComponentInChildren<FilingController>().enabled = true; GetComponentInChildren<Camera>().enabled = true; GetComponentInChildren<ParamScript>().enabled = true; GetComponentInChildren<Canvas>().enabled = true; } else { GetComponentInChildren<AudioListener>().enabled = false; } } void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info) { if (stream.isWriting) { stream.SendNext(life); } else { life = (int)stream.ReceiveNext(); } } [PunRPC] public void GetShot() { life -= 25; if (life == 0 && photonView.isMine) { if (RespawnMe != null) { RespawnMe(3f); } PhotonNetwork.Destroy(gameObject); } }
}
using System.Collections;
using UnityEngine;
public class PhotonController : Photon.MonoBehaviour
{
[SerializeField] GameObject player;
[SerializeField] GameObject target;
[SerializeField] Transform[] spawnPoints;
void Start() { PhotonNetwork.ConnectUsingSettings("0.1"); } void OnJoinedLobby() { PhotonNetwork.JoinRandomRoom(); } void OnPhotonRandomJoinFailed() { PhotonNetwork.CreateRoom(null); } void OnJoinedRoom() { StartSpawnProcess(0f); } void StartSpawnProcess(float respawnTime) { StartCoroutine("SpawnPlayer", respawnTime); } IEnumerator SpawnPlayer(float respawnTime) { yield return new WaitForSeconds(respawnTime); int index = Random.Range(0, spawnPoints.Length); PhotonNetwork.Instantiate(player.name, spawnPoints[index].position, spawnPoints[index].rotation, 0); PhotonNetwork.Instantiate(target.name, new Vector3(5, 0, 20), Quaternion.Euler(0, 180, 0), 0); player.GetComponent<NetworkPlayerManager>().RespawnMe += StartSpawnProcess; }
}
今日は通信対戦FPSゲームを作っています。現在はビルドで同じキャラクターを出現させてお互いに戦わせています。自分またはライフが0になった時にプレイヤーを再生成するようにしたいのですが、プレイヤーが倒されると、うまく生成はされているようなのですが、 NetworkPlayerManagerのstartメソッドが走っていないようでコンポーネントがactiveになりません。
これが倒された時の画面になります。
わかる方教えてくださいよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。