我不知道我做错了什么我尝试了几种不同的方法,从不使用命令到使用SpawnWithClientAuthority
。但它要么给出构建和编译错误,要么只给出标题中的错误。
这是我的播放器对象的开始功能
void Start () {
player = isLocalPlayer;
race = Data.races[(int)selectRace].getInstance();
clss = Data.classes[(int)selectClass].getInstance();
health = race.Health * clss.HealthMultiplyer;
speed = race.Speed * clss.SpeedMultiplyer;
armor = race.Armor * clss.ArmorhMultiplayer;
energy = race.Energy * clss.EnergyMultiplayer;
skills.AddRange(race.RaceSkills);
skills.AddRange(clss.ClassSkills);
Data.entities.Add(this);
Debug.Log(isLocalPlayer);
if (!isLocalPlayer)
return;
int enID = Data.entities.IndexOf(this);
foreach (Skill s in skills)
s.CmdSpawn(enID);
}
这是我尝试产生技能的产卵函数
[Command]
public override void CmdSpawn(int enID)
{
setEntity(Data.entities[enID]);
Debug.Log("Spawned");
dir = getEntity().lookingAt;
gameObject.transform.position = getEntity().transform.position + dir * 0.65f;
transform.up = dir;
NetworkServer.Spawn(gameObject);
}
和
[Command]
public override void CmdSpawn(int enID)
{
setEntity(Data.entities[enID]);
dir = getEntity().lookingAt;
transform.up = dir;
dir = new Vector3(dir.z, dir.y, -dir.x);
gameObject.transform.position = getEntity().transform.position + dir * 0.65f;
NetworkServer.Spawn(gameObject);
}