gpt4 book ai didi

unity-game-engine - 将参数预先应用到 unityscript 函数并将其用作发送到另一个函数的对象

转载 作者:行者123 更新时间:2023-12-02 04:08:57 26 4
gpt4 key购买 nike

我有一个复杂的函数。我计划向其中发送一个函数。

function ComplexFunction( customFunction : function)
{
//Complex things
customFunction();
//Complex things
}

但是我计划发送的函数有不同的签名

function FunctionA ( enumParameter : EnumX )
function FunctionB ( enumParameter : EnumY )
function FunctionC ( enumParameter : EnumZ )

所以这不是一个选项,因为我不知道将发送什么类型。

function ComplexFunction( customFunction : function , enumForCustomFunction : Enum??? )

(这是Unity的unityscript,带有#pragma strict,所以我必须指明参数类型。)

所以我考虑预先应用这些枚举参数,将其放入无参数函数并将其发送给ComplexFunction调用。这可能吗?

最佳答案

在纯 JavaScript 中,您可以将参数绑定(bind)到函数,如下所示:

var multiply = function(x,y) { return x*y };
var doubleIt = multiply.bind(null, 2);

因此调用 doubleIt(3) 现在返回 6。 (null 设置函数的上下文,在本例中我们不关心它,所以我们使用 null)。您可以在此处阅读有关此主题的更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind

<小时/>

在你的情况下,我会用 FunctionA 调用 ComplexFunction ,如下所示:

ComplexFunction(FunctionA.bind(null, AValueFromEnumX));

关于unity-game-engine - 将参数预先应用到 unityscript 函数并将其用作发送到另一个函数的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17107527/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com