我有这种情况,我需要发送某种 OSC 消息,不幸的是,限制是 OSC 列表需要采用这种格式:float、float、float .....
原始数据是一些顶点数据,vector_float3。
我相信这应该很简单,但是我在尝试“解压”列表时头疼。
dataY 是 vector_float3 值的列表。我不确定如何处理这个问题,据说有一张地图,但这只适用于 String 吗?
如果我要手动执行此操作,则必须手动键入列表中的每个项目:
var mymessage:[Float] = []
for data in dataY {
mymessage.append(data.x)
mymessage.append(data.y)
mymessage.append(data.z)
}
let message = OSCMessage( OSCAddressPattern("/hello/osc"),
mymessage[0], mymessage[1], mymessage[2],
mymessage[3], mymessage[4], mymessage[5],
mymessage[6], mymessage[7], mymessage[8]
)
vector_float3
是一个元组,在 Swift 中没有从元组到数组的简单转换,你必须显式地访问每个元组成员。你可以更紧凑地实现这一点
let myMessage = Array(dataY.map { [$0.x, $0.y, $0.z] }.joined())
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句