- Home /
Question by
TheOgien · Oct 13, 2014 at 02:57 PM ·
networkingplayerfpsserver
Players unexpectedly change positions
When i start the game it runs fine and then when i join in the game with another player the player2 takes over for the player1 and player1 goes to player 2 any idea what might be cousing this. Any help would be appriciated
using UnityEngine;
using System.Collections;
public class Server : Photon.MonoBehaviour {
Player1Controller player1Controller;
public GameObject standByCamera;
SpawnSpots[] spawnSpots;
public bool offlineMode = false;
bool connecting = false;
public float respawnTimer = 0;
void Start(){
spawnSpots = GameObject.FindObjectsOfType<SpawnSpots> ();
PhotonNetwork.player.name = PlayerPrefs.GetString ("Username", "NoName");
}
void OnDestroy(){
PlayerPrefs.SetString ("Username", PhotonNetwork.player.name);
}
void Connect() {
PhotonNetwork.ConnectUsingSettings( "MultiFPS v001" );
}
void OnGUI() {
GUILayout.Label( PhotonNetwork.connectionStateDetailed.ToString() );
if(PhotonNetwork.connected == false && connecting == false ) {
GUILayout.BeginArea( new Rect(0, 0, Screen.width, Screen.height) );
GUILayout.BeginHorizontal();
GUILayout.FlexibleSpace();
GUILayout.BeginVertical();
GUILayout.FlexibleSpace();
GUILayout.BeginHorizontal();
GUILayout.Label("Username: ");
PhotonNetwork.player.name = GUILayout.TextField(PhotonNetwork.player.name);
GUILayout.EndHorizontal();
if( GUILayout.Button("Single Player") ) {
connecting = true;
PhotonNetwork.offlineMode = true;
OnJoinedLobby();
}
if( GUILayout.Button("Multi Player") ) {
connecting = true;
Connect ();
}
GUILayout.FlexibleSpace();
GUILayout.EndVertical();
GUILayout.FlexibleSpace();
GUILayout.EndHorizontal();
GUILayout.EndArea();
}
}
void OnJoinedLobby() {
Debug.Log ("OnJoinedLobby");
PhotonNetwork.JoinRandomRoom();
}
void OnPhotonRandomJoinFailed() {
Debug.Log ("OnPhotonRandomJoinFailed");
PhotonNetwork.CreateRoom( null );
}
void OnJoinedRoom() {
Debug.Log ("OnJoinedRoom");
connecting = false;
SpawnPlayer();
}
void SpawnPlayer(){
if (spawnSpots == null) {
Debug.LogError ("Couldnt find a spawnSpot");
return;
}
SpawnSpots mySpawnSpot = spawnSpots[Random.Range(0,spawnSpots.Length)];
Debug.Log ("SpawnPlayer");
GameObject myPlayer = (GameObject)PhotonNetwork.Instantiate ("PlayerController", mySpawnSpot.transform.position, mySpawnSpot.transform.rotation, 0);
myPlayer.gameObject.SetActive (true);
standByCamera.SetActive (false);
//turns on scripts for the player at start
((MonoBehaviour)myPlayer.GetComponent("Player1Controller")).enabled = true;
((MonoBehaviour)myPlayer.GetComponent("NetworkPlayer")).enabled = true;
((MonoBehaviour)myPlayer.GetComponent("PlayerShooting")).enabled = true;
((MonoBehaviour)myPlayer.GetComponent("Health")).enabled = true;
}
void Update(){
//respawns the player
if(respawnTimer > 0){
respawnTimer -= Time.deltaTime;
if(respawnTimer <= 0){
SpawnPlayer();
}
}
}
}
Comment
Your answer
Follow this Question
Related Questions
Unity networking tutorial? 6 Answers
crossdomain.xml Unity 3.0 0 Answers
How to check when a new client/local player is loaded? 1 Answer
Problem with player updating. 0 Answers