在游戏对象中启用多个Monobehaviour组件

时间:2018-05-01 05:44:54

标签: c# unity3d multiplayer

所以,我正在尝试使用c#中的各种游戏对象和脚本为场景中的每个对象创建一个多人游戏。

事实上,当我产生玩家控制的对象时,每个玩家共享对场景中每个衍生游戏对象的脚本的控制,这意味着,当有人按下“s”时,每个玩家向后移动,这不是我想要的游戏表现。

- 所以,我知道解决这个问题的唯一方法就是通过禁用所有脚本(组件)来生成'em',并在游戏对象上启用另一个脚本,但是我必须创建一个脚本来启用它每个组件一个接一个,每当我向新单元添加一个新单元时,它真的有时间创建或编辑一个新脚本,所以我想我可以做下面这样的脚本。

 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;
     }
  }
}

执行此操作后,我预计每个“monobehaviour组件”我都会使用unity添加到脚本中,以便在仅控制游戏对象的玩家时启用,但它什么都不做,我检查游戏对象上的组件测试这个他们都还是残疾人。

另外,除了我所知道的其他方式,我有什么方法可以解决这个问题吗?如果是这样,我会爱你照亮我教我如何。

请帮忙,我最近开始编码,我真的需要C#的帮助

1 个答案:

答案 0 :(得分:0)

检查islocalplayer。

我认为这可以解决你所有的问题。

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