// вызывается из потока собыйти unity static private PacketCreateReady create(PacketHeader packet) { PacketCreate create = UnityEngine.JsonUtility.FromJson <PacketCreate>(packet.json_data); switch (create.type) { case "camera": return(new PacketCreateReady(create_camera(packet))); case "manipulator1": return(new PacketCreateReady(create_manipulator1(packet))); case "manipulator2": return(new PacketCreateReady(create_manipulator2(packet))); case "thing": return(new PacketCreateReady(create_thing(packet))); case "table": return(new PacketCreateReady(create_table(packet))); default: return(new PacketCreateReady(0)); } }
// в потоке клиента нельзя вызывать, только из потока событий unity static private int create_table(PacketHeader packet) { maxid++; PacketCreate create = UnityEngine.JsonUtility.FromJson <PacketCreate>(packet.json_data); delete(create.idname); PacketTable data = UnityEngine.JsonUtility.FromJson <PacketTable>(packet.json_data); tables[maxid] = table.Create(data.model, data.x, data.y, data.z, data.ex, data.ey, data.ez, data.scale, data.kinematic); idnames[create.idname] = maxid; return(maxid); }
// в потоке клиента нельзя вызывать, только из потока событий unity static private int create_manipulator2(PacketHeader packet) { maxid++; PacketCreate create = UnityEngine.JsonUtility.FromJson <PacketCreate>(packet.json_data); delete(create.idname); device dev = new manipulator2(); ((manipulator2)dev).config = UnityEngine.JsonUtility.FromJson <configmanipulator2>(packet.json_data); dev.Place(); devices[maxid] = dev; idnames[create.idname] = maxid; return(maxid); }
// в потоке клиента нельзя вызывать, только из потока событий unity static private int create_camera(PacketHeader packet) { maxid++; PacketCreate create = UnityEngine.JsonUtility.FromJson <PacketCreate>(packet.json_data); delete(create.idname); UnityEngine.GameObject obj = UnityEngine.GameObject.Instantiate(UnityEngine.Resources.Load("camera/camera", typeof(UnityEngine.GameObject)) as UnityEngine.GameObject); PacketSetcamera setcamera = UnityEngine.JsonUtility.FromJson <PacketSetcamera>(packet.json_data); obj.GetComponent <camera>().targetposition = new UnityEngine.Vector3(setcamera.x0, setcamera.y0, setcamera.z0); obj.transform.position = new UnityEngine.Vector3(setcamera.x1, setcamera.y1, setcamera.z1); cameras[maxid] = obj; idnames[create.idname] = maxid; return(maxid); }