Skip to main content

UI Control需要的数据类型

说明

现在举一个实际的例子来说明:
如果您需要写“窗口”这个UI Control对应的Input,则希望知道Input返回的类型。为此,您可以先找到“meta3d-ui-control-window-protocol”的代码,找到其中的“inputFunc”的类型。如果它为null,则说明该UI Control不需要Input;否则,找到它使用了哪个func。具体如下所示:
meta3d-ui-control-window-protocol的代码:

...
import { func } from "meta3d-input-window-protocol"

...
export type inputFunc = nullable<func>

这里使用了“meta3d-input-window-protocol”的func,所以我们打开它的代码,如下所示: meta3d-input-window-protocol的代码:

import { inputFunc } from "meta3d-ui-protocol/src/contribute/InputContributeType"

type isShow = boolean

export type data = isShow

export type func = inputFunc<data>

这里只看data的类型。此处它是boolean类型,因此Input应该返回Promise<boolean>类型,即Input代码应该为:

        ...
        func: (meta3dState) =>{
            ...

            return Promise.resolve(true or false)
        }

相关代码

“meta3d-ui-control-xxx-protocol”和“meta3d-input-xxx-protocol”的代码在这里可以找到,请查看src/Index.ts(如meta3d-input-input-float3-protocol/src/Index.ts)