Пример #1
0
    void OnEnvironment(RPC.EnvironmentPayload payload)
    {
        Debug.Log("<< Environment");

        var serverUnknowItems = new List <KeyValuePair <int, GameObject> >();

        foreach (var item in items)
        {
            if (payload.Items.Exists(itemRpc => itemRpc.Id == item.Key))
            {
                continue;
            }

            serverUnknowItems.Add(item);
        }
        foreach (var item in serverUnknowItems)
        {
            items.Remove(item.Key);
            Destroy(item.Value);
        }

        foreach (var itemRpc in payload.Items)
        {
            if (items.ContainsKey(itemRpc.Id))
            {
                continue;
            }

            SpawnItem(itemRpc);
        }
    }
Пример #2
0
    void OnEnvironment(RPC.EnvironmentPayload payload)
    {
        Debug.Log("<< Environment");

        var serverUnknownItems = new List <KeyValuePair <int, GameObject> >();

        // サーバーからのリスト(payload.Items)にないアイテムを所持していたらserverUnknownItemsに追加
        foreach (var item in items)
        {
            if (payload.Items.Exists(itemRpc => itemRpc.Id == item.Key))
            {
                continue;
            }

            serverUnknownItems.Add(item);
        }
        // serverUnknownItemsをクライアントから削除
        foreach (var item in serverUnknownItems)
        {
            items.Remove(item.Key);
            Destroy(item.Value);
        }

        foreach (var rpcItem in payload.Items)
        {
            if (items.ContainsKey(rpcItem.Id))
            {
                continue;
            }

            SpawnItem(rpcItem);
        }
    }
Пример #3
0
 public Environment(EnvironmentPayload payload)
 {
     this.Payload = payload;
 }