Почему не меняется цифра у объекта ?

Программирование на Юнити.

Почему не меняется цифра у объекта ?

Сообщение RFUTBOTBAJBACG 08 май 2023, 13:09

В общем, у меня есть онлайн режим на фотоне, и там может быть 7 игроков максимум (в одной комнате) у них у всех одинаковое имя без цифр в конце, а мне надо чтобы в конце каждой машины до 7-ой были соотв. цифры (1 машина - *название машины*1, 2 машина - *название машины*2 и т.д), у всех машины абсолютно одинаковые названия, но этот скрипт присваивает цифру только первой машине, а остальные создаются с одинаковыми именами
этот скрипт создает машину :
Синтаксис:
Используется csharp
using Photon.Pun;
using UnityEngine;
 
public class SpawnManager : MonoBehaviour
{
    public GameObject[] Spawns;
    public Transform Player;
 
    private void Awake()
    {
        // Получаем номер создаваемой машины
        int carNumber = PhotonNetwork.CurrentRoom.PlayerCount;
 
        // Создаем машину и добавляем номер в имя
        GameObject car = PhotonNetwork.Instantiate(Player.name, Spawns[Random.Range(0, Spawns.Length)].transform.position, Quaternion.identity);
        car.name += carNumber;
 
        // Вызываем метод, который присвоит нужный тег машине
        AllTheCarsController.AssignTagToCar(car.name, "Car" + carNumber);
    }
}

а этот пытается добавлять цифры к машинам :
Синтаксис:
Используется csharp
using UnityEngine;
 
public class AllTheCarsController : MonoBehaviour
{
    public static void AssignTagToCar(string carName, string tag)
    {
        // Получаем все машины в сцене с тегом "Car"
        GameObject[] allCars = GameObject.FindGameObjectsWithTag("Car");
 
        // Ищем нужную машину по имени
        foreach (GameObject car in allCars)
        {
            if (car.name == carName)
            {
                // Нашли нужную машину, присваиваем ей тег
                car.tag = tag;
                break;
            }
        }
    }
 
    public void Start()
    {
        // Нечего не нужно делать при старте
    }
}

Заранее большое спасибо!
RFUTBOTBAJBACG
UNец
 
Сообщения: 9
Зарегистрирован: 21 янв 2023, 20:55

Re: Почему не меняется цифра у объекта ?

Сообщение Alkos26Rus 08 май 2023, 19:41

Не знаю, тут у тебя все не правильно.

car.name += carNumber; тут ты меняешь имя объекта на сцене

car.tag = tag; тут просто меняешь тег

но никакой синхронизации не будет, т.к каждый клиент поменяет имя и тег только у себя на сцене и только у своей машины

Тебе нужно поизучать как реализуется синхронизация, там либо сообщения посылать, либо синхронизировать какую то конкретную переменную
Аватара пользователя
Alkos26Rus
Адепт
 
Сообщения: 1640
Зарегистрирован: 26 ноя 2020, 17:52
Откуда: Москва


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7