Итак, я пытаюсь создать здесь многопользовательскую игру с различными игровыми объектами и скриптами на C # для каждого объекта на сцене.
Дело в том, что когда я создаю объекты, контролируемые игроком, каждый игрок разделяет контроль над скриптами для каждого порожденного объекта gameObject на сцене, это означает, что когда кто-то нажимает, например, «s», каждый игрок движется назад, и я не хочу, чтобы игра вела себя так. .
- Итак, единственный способ, который я знаю, чтобы решить эту проблему, - создать их со всеми их скриптами (компонентами), отключенными, и включить их с другим скриптом на игровом объекте, но мне пришлось создать скрипт, чтобы включить каждый компонент. по одному, и у него действительно было время для создания или редактирования нового скрипта каждый раз, когда я добавляю новый в новые юниты и так далее, поэтому я понял, что могу сделать что-то вроде этого скрипта ниже.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
public class PlayerNetControl : NetworkBehaviour {
public MonoBehaviour[] components2enable;
public override void OnStartLocalPlayer()
{
foreach (MonoBehaviour cmp in components2enable)
{
cmp.enabled = true;
}
}
}
после этого я ожидал, что каждый «компонент моноповедения», который я добавил в скрипт с использованием единства, будет включен, когда для игрока, который контролировал только игровой объект, но он ничего не делает, я проверяю компоненты на игровом объекте, проверяя это, они все еще отключены.
Кроме того, могу ли я решить эту проблему каким-либо другим способом, кроме того, который я знаю? Если так, я бы хотел, чтобы вы осветили меня, научив меня тому, как это сделать.
Пожалуйста, помогите, я недавно начал кодить и мне очень нужна помощь с C #