예제 #1
0
        void ChangeHandler(Peer peer, byte[] data)
        {
            if (!testMode)
            {
                return;
            }

            ChangeObj changeObj = MessagePackSerializer.Deserialize <ChangeObj>(data);

            peers[peer.ID].Name = changeObj.Name;

            Unit unit = Root.GetChild <WorldEntity>().GetUnit(peers[peer.ID].UnitID);

            if (unit != null)
            {
                if (unit.Team != changeObj.Team || unit.Type != changeObj.Type)
                {
                    unit.ClearReference();
                    Root.GetChild <WorldEntity>().RemoveChild(unit);

                    Champion champion = new Champion(peer.ID, Root.GetChild <WorldEntity>().GetFountainPosition(changeObj.Team), 0, 0.3f, changeObj.Type, changeObj.Team, initGold, Root);
                    Root.GetChild <WorldEntity>().AddChild(champion);

                    peers[peer.ID].UnitID = champion.UnitID;
                    peers[peer.ID].Team   = changeObj.Team;
                    peers[peer.ID].Type   = changeObj.Type;
                }
            }
        }
예제 #2
0
    public void ChangeButtonClicked()
    {
        Team team;

        Enum.TryParse(teamDropdown.options[teamDropdown.value].text, out team);
        UnitType unitType;

        Enum.TryParse(unitTypeDropdown.options[unitTypeDropdown.value].text, out unitType);

        ChangeObj changeObj = new ChangeObj()
        {
            Team = team,
            Name = nameInputField.text,
            Type = unitType
        };

        network.Send(MessageType.Change, MessagePackSerializer.Serialize(changeObj), ENet.PacketFlags.Reliable);
    }