void OnPlaneChanged(ARPlanesChangedEventArgs args) { var added = args.added.Select(plane => ToBoundedPlane(plane)).ToArray(); var updated = args.updated.Select(plane => ToBoundedPlane(plane)).ToArray(); var removed = args.removed.Select(plane => (TrackableId)plane.trackableId).ToArray(); var meshes = new Dictionary <TrackableId, byte[]>(); foreach (var plane in args.added) { meshes[plane.trackableId] = plane.boundary.ToRawBytes(); } foreach (var plane in args.updated) { meshes[plane.trackableId] = plane.boundary.ToRawBytes(); } planeInfo = new ARKitRemotePacket.PlaneInfo() { added = added, updated = updated, removed = removed, meshes = meshes, }; }
protected override void OnPacketTransformer(ARKitRemotePacket packet) { packet.plane = planeInfo; planeInfo = null; }