我想使用浮点数组作为OSC.sendMessage()的函数参数。例如,在PHP中,我知道call_user_func_array()。 sc语中有类似的内容吗?
上下文是,我想通过OSC从sclang向Unity发送很多浮点值。 AFAIK不可能直接在OSC消息中嵌入值数组。
如果有更好的方法可以实现此目标,我也乐于提出建议,因为我的理解是,对于我可以打包到1个OSC消息中的值的数量可能存在一些限制,也许我必须处理碎片化/跨越多个对象自己发消息。
对于固定的数组大小/参数计数,我发现了这一点:
copy-of()
但是我需要针对不同阵列大小的更通用的解决方案。
答案 0 :(得分:0)
SuperCollider中有语法糖可以解压缩数组-
(
var list = [1, 2, 3];
func(*list); // equivalent to func(list[0], list[1], list[2])
)
var a, b, c;
#a, b, c = [1, 2, 3]; // equivalent to a=1; b=2; c=3;
而且,即使对于您的示例代码,SC也支持参数包样式的语法来处理变量数组:
(
var formatWarning = {
|string, ...args| // where args becomes an array of all remaining variables
string.format(*args).warn;
};
formatWarning.value("Too much % %!", "syntactic sugar", "for me");