var redPrefab : Transform;
var bluePrefab : Transform;
var redSpot : GameObject;
var blueSpot : GameObject;
var gamesName = "Enter the name of your game!";
var gamesDesc = "Enter a short description of your game!";
var gameMaster = false;
var gameJoiner = false;
var startUp = false;
var gameInPlay = false;
var player1 = false;
var player2 = false;
var playersFull = false;
var notMain = false;
function OnGUI () {
if (!gameMaster !gameJoiner !gameInPlay !notMain) {
if (GUILayout.Button("Create Game")) {
gameMaster = true;
}
if (GUILayout.Button("Join Game")) {
gameJoiner = true;
}
}
if (gameMaster == true){
gamesName = GUILayout.TextField(gamesName);
gamesDesc = GUILayout.TextArea(gamesDesc);
if (GUILayout.Button ("Create Game")) {
Network.useNat = !Network.HavePublicAddress();
Network.InitializeServer(1, 25002);
MasterServer.RegisterHost("RandomBoxWithCubesGame",gamesName,gamesDesc);
gameMaster = false;
notMain = true;
player1 = true;
}
}
if (gameJoiner == true) {
var data : HostData[] = MasterServer.PollHostList();
for (var element in data) {
GUILayout.BeginHorizontal();
var name = element.gameName + ": " + element.comment + " (" + element.connectedPlayers + " / " + element.playerLimit + ")";
GUILayout.Label(name);
GUILayout.Space(5);
GUILayout.FlexibleSpace();
if (GUILayout.Button("Connect")) {
Network.useNat = element.useNat;
if (Network.useNat) {
print("Using Nat punchthrough to connect to host");
} else {
print("Connecting directly to host");
Network.Connect(element.ip, element.port);
}
GUILayout.EndHorizontal();
}
}
MasterServer.RequestHostList("RandomBoxWithCubesGame");
}
if (notMain !playersFull) {
GUILayout.Label ("Waiting for other players to join");
}
if (playersFull !gameInPlay) {
if (player1) {
if (GUILayout.Button("All players have joined, Start Game")) {
startIt ();
}
} else {
GUILayout.Label("Waiting for Player 1 to start the game");
}
}
if (startUp) {
if (player1) {
Network.Instantiate(redPrefab,redSpot.transform.position,Quaternion.identity,0);
}
if (player2) {
Network.Instantiate(bluePrefab,blueSpot.transform.position,Quaternion.identity,0);
}
startUp = false;
}
}
function OnConnectedToServer () {
gameJoiner = false;
notMain = true;
player2 = true;
}
function OnPlayerDisconnected (player: NetworkPlayer) {
Network.RemoveRPCs (player);
Network.DestroyPlayerObjects (player);
}
function Awake () {
MasterServer.ClearHostList();
MasterServer.RequestHostList("RandomBoxWithCubesGame");
}
function FixedUpdate () {
if (Network.connections.length > 0) {
playersFull = true;
}
}
@RPC
function startIt () {
gameInPlay = true;
startUp = true;
}
This script has come a long ways since I started. It now has nice fancy HUDs for everything. Now my problem is, when Player 1 presses the “All players have joined, Start Game” button, which calls the RPC function startIt, it never registers with Player2. This one is really driving me crazy. Help!