所以,我正在尝试使用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#的帮助
答案 0 :(得分:0)
检查islocalplayer。
我认为这可以解决你所有的问题。
https://docs.unity3d.com/ScriptReference/Networking.NetworkBehaviour-isLocalPlayer.html