public static void processMsg(SpawnMsgModel args)
 {
     //Debug.Log("Spawn: " + args);
     if (ObjectManager.existObject(args.owner, args.name))
     {
         Debug.LogWarning("Object \"" + args.name + "\" for user \"" + args.owner + "\" existed");
         return;
     }
     UnityEngine.Object original = Resources.Load(args.prefabClassName, typeof(GameObject));
     if (original != null)
     {
         GameObject parent = null;
         if (!string.IsNullOrEmpty(args.parentName))
         {
             parent = GameObject.Find(args.parentName);
         }
         GameObject obj;
         if (parent != null)
         {
             obj = UnityEngine.Object.Instantiate(original, parent.transform) as GameObject;
         }
         else
         {
             obj = UnityEngine.Object.Instantiate(original) as GameObject;
         }
         obj.name = ObjectManager.genName(args.owner, args.name);
         NetworkObject nobj = obj.GetComponent <NetworkObject>();
         nobj.owner           = args.owner;
         nobj.name_short      = args.name;
         nobj.prefabClassName = args.prefabClassName;
         nobj.initState(args.objStateArgs);
     }
     else
     {
         Debug.LogError("Prefab class name \"" + args.prefabClassName + "\" cannot be found");
     }
 }
 public static string serialize(SpawnMsgModel spawn_msg)
 {
     return(JsonUtility.ToJson(spawn_msg));
 }