Включение нескольких компонентов Monobehaviour в игровом объекте

Итак, я пытаюсь создать здесь многопользовательскую игру с различными игровыми объектами и скриптами на 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 #


person Pravin Budharap    schedule 01.05.2018    source источник


Ответы (1)


Проверьте islocalplayer.

Думаю, это решит все твои проблемы.

https://docs.unity3d.com/ScriptReference/Networking.NetworkBehaviour-isLocalPlayer.html

person Immorality    schedule 01.05.2018