Пятница, 19 Апреля 2024, 01:40

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » [РЕШЕНО] Как сделать чтобы сигнал срабатывал у всех
[РЕШЕНО] Как сделать чтобы сигнал срабатывал у всех
serezhaДата: Вторник, 23 Ноября 2021, 15:56 | Сообщение # 1
был не раз
Сейчас нет на сайте
Здравствуйте! Уже второй день измучился над условием. В сетевой игре при подключении одного игрока регистрируется сигнал 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);
    }
}


Сообщение отредактировал serezha - Воскресенье, 19 Декабря 2021, 22:52
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » [РЕШЕНО] Как сделать чтобы сигнал срабатывал у всех
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг