Здравствуйте! Уже второй день измучился над условием. В сетевой игре при подключении одного игрока регистрируется сигнал 1 и 2, а вот когда подключается второй игрок или третий, то никакого сигнала нет. Как сделать так чтобы сигнал срабатывал при подключении любого количества игроков, а не только у одного ?
Нашел решение: создал отдельную переменную счетчика и при спавне игрока прибавляю на еденицу.
Оказалось что прибавлять нужно где команда создания игрока и проблема решилась
Код
using System;
using UnityEngine;
using System.Text;
using System.Collections;
public class Server : MonoBehaviour {
public GameObject PlayerPrefab;
public bool serv;
public string ip = "127.0.0.1";
public string port = "2800";
public bool connected;
public GameObject go;
public GameObject To;
public int LE;
public int LEK;
void Awake () {
serv = false;
LE = 0;
LEK = 0;
}
void Update () {
if (serv == true & Network.connections.Length >= 1) {
LE = + 1;
}
if (LEK != LE) {
GetComponent<NetworkView>().RPC ("RpcIK", RPCMode.Others);
Debug.Log("СИГНАЛ 1");
LEK = LE;
}
}
[RPC]
public void RpcIK () {
Debug.Log("СИГНАЛ 2");
}
void OnGUI () {
if(GUI.Button(new Rect((Screen.width - 110)/2, Screen.height/2 + 35, 110, 30), "Создать сервер"))
Network.InitializeServer(10, Convert.ToInt32(port), false);
if (GUI.Button (new Rect ((Screen.width - 120) / 2, Screen.height / 7, 150, 30), "Войти"))
Network.Connect (ip, Convert.ToInt32 (port));
}
void OnServerInitialized () {
serv = true;
}
void OnConnectedToServer () {
CreatePlayer();
}
void CreatePlayer () {
connected = true;
go = (GameObject)Network.Instantiate(PlayerPrefab, transform.position = To.transform.position, transform.rotation = To.transform.rotation, 1);
}
}