Пример #1
0
    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);
            }
        }
    }
Пример #2
0
    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);
        }
    }