Включение нескольких компонентов Monobehaviour в игровом объекте - PullRequest
0 голосов
/ 01 мая 2018

Итак, я пытаюсь создать многопользовательскую игру здесь с различными игровыми объектами и скриптами на c # для каждого объекта на сцене.

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

1 Ответ

0 голосов
/ 01 мая 2018

Проверка на islocalplayer.

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

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

...