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

标签 unity-game-engine arguments parameter-passing unityscript

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

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/

相关文章:

c# - 跟踪游戏对象的子级数量

actionscript-3 - 如何在 ActionScript 3 中创建一个接受多种参数类型的函数?

java - 如何有条件地将 Java 中的参数传递给采用可变数量参数的方法?

R:purrr:使用 pmap 进行逐行操作,但这次涉及很多列

java - 如何为 Android 设备统一实现 FCM 推送通知,即使游戏被终止也能正常工作

unity-game-engine - 如何在unity3d中创建一个popUp?

c# - 用于 OnSelect 和 OnDeselect 目的的委托(delegate)

c# - 如何让一个方法接受两种类型的数据作为参数?

c - 从不兼容的指针类型传递参数

ios - 当数据以 JSON 形式出现时,保存数据并将其从 TableView Controller 发送到详细 View Controller 的正确方法是什么