Advertisement
Guest User

Unity Protobuf Example

a guest
Nov 4th, 2012
758
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.76 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.IO;
  5. using DataModels;
  6.  
  7. public class UnityExample : MonoBehaviour
  8. {
  9.     public override void Start()
  10.     {
  11.         // Create fake data to serialize
  12.         EntityStateList entityStateList = new EntityStateList();
  13.         entityStateList.serializableItems = new Dictionary<int, EntityState>();
  14.  
  15.         EntityState entityState = new EntityState();
  16.         for (int i = 0; i < 5; i++)
  17.         {
  18.             entityState = new EntityState();
  19.             entityState.id = i;
  20.             entityState.name = "EntityState_" + i;
  21.             entityState.hp = i * 100;
  22.             entityState.position = new MyVector3(1f, 2f, 3f);
  23.             entityState.rotation = new MyQuaternion(1f, 2f, 3f, 4f);
  24.             entityStateList.serializableItems.Add(i, entityState);
  25.         }
  26.  
  27.         // Serialize the above data!
  28.         ModelSerializer mySerializer = new ModelSerializer();
  29.         MemoryStream memoryStream = new MemoryStream();
  30.         mySerializer.Serialize(memoryStream, entityStateList);
  31.         string serializedStr = System.Convert.ToBase64String(memoryStream.ToArray());
  32.         Debug.Log("SERIALIZED OBJECT " + serializedStr);
  33.  
  34.  
  35.         // Deserialize the data
  36.         MemoryStream stream = new MemoryStream(System.Convert.FromBase64String(serializedStr));
  37.         EntityStateList deserializedEntityList = new EntityStateList();
  38.         mySerializer.Deserialize(stream, deserializedEntityList, typeof(EntityStateList));
  39.  
  40.         foreach (EntityState deserializedEntityState in deserializedEntityList.serializableItems.Values)
  41.         {
  42.             Debug.Log("id=" + deserializedEntityState.id);
  43.             Debug.Log("name :" + deserializedEntityState.name);
  44.             Debug.Log("hp=" + deserializedEntityState.hp);
  45.             Debug.Log("position=" + deserializedEntityState.position);
  46.             Debug.Log("rotation=" + deserializedEntityState.rotation);
  47.             Debug.Log("");
  48.         }
  49.     }
  50.  
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement