C# 在游戏对象中启用多个单行为组件
因此,我尝试在这里制作一个多人游戏,为场景中的每个对象使用不同的游戏对象和c#脚本 问题是,当我生成玩家控制的对象时,每个玩家共享对场景中每个生成游戏对象脚本的控制,这意味着,当有人按下“s”时,例如,每个玩家都会向后移动,而这不是我希望游戏的行为 --所以,我知道解决这个问题的唯一方法是,在禁用所有脚本(组件)的情况下生成它们,并在游戏对象上使用另一个脚本启用它们,但我必须创建一个脚本来逐个启用每个组件,而且每次我向新单位添加一个新脚本时,都需要创建或编辑一个新脚本,等等,所以我想我可以做下面这个脚本C# 在游戏对象中启用多个单行为组件,c#,unity3d,multiplayer,C#,Unity3d,Multiplayer,因此,我尝试在这里制作一个多人游戏,为场景中的每个对象使用不同的游戏对象和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;
}
}
}
完成此操作后,我希望我使用unity添加到脚本中的每个“单行为组件”都能启用,但对于仅控制游戏对象的玩家来说,它什么也不做,我检查了游戏对象上的组件并进行了测试,它们仍然是禁用的
还有,除了我所知道的方法之外,还有其他方法可以解决这个问题吗?如果是这样的话,我希望你能启发我如何教我
请帮助,我最近开始编码,我真的需要C#的帮助检查islocalplayer 我认为这解决了你所有的问题