void Inform() { MObjects.SkillSpawn mObject = new MObjects.SkillSpawn(); mObject.id = id; mObject.clientPrefab = clientPrefab; mObject.speed = moveSpeed; mObject.position = transform.position; mObject.rotation = transform.eulerAngles.y; if (skillType == SkillType.Mover) { mObject.casterId = (caster.user != null) ? caster.user.connectionId : caster.customId; } int _c = session.agents.Count; for (int i = 0; i < _c; i++) { if (session.agents[i].user != null && NetworkServer.connections.Contains(session.agents[i].user)) { // send the mobject NetworkServer.SendToClient(session.agents[i].user.connectionId, MTypes.SkillSpawn, mObject); } } }
public void OnSkillSpawn(NetworkMessage netMsg) { MObjects.SkillSpawn mObject = netMsg.ReadMessage <MObjects.SkillSpawn>(); Skill s = Skill.list.Find(x => x.id == mObject.id); if (s == null) { Transform t = skills.Find(x => x.name == mObject.clientPrefab); Transform skill = Instantiate(t, Vector3.zero, t.rotation); s = skill.gameObject.AddComponent <Skill>(); s.id = mObject.id; s.offset = t.position.y; s.moveSpeed = mObject.speed; s.casterId = mObject.casterId; MobileAgent ma = MobileAgent.list.Find(x => x.id == mObject.casterId); if (ma != null) { mObject.position = ma.transform.position; } s.SetPosition(mObject.position); s.transform.eulerAngles = new Vector3(s.transform.eulerAngles.x, mObject.rotation, s.transform.eulerAngles.z); } }