可以编辑 MCG 工具的“自定义 UI”属性来扩展自动生成的参数块,并覆盖参数事件处理程序或创建其他参数块。
例如,可以添加图形中不存在、但用于自定义 MAXScript 代码中其他位置的参数。还可以覆盖参数事件处理程序,例如,对于图形中的列表参数。
为此,请重新打开参数块进行必要的修改。请注意,此操作不会完全覆盖上一个块。尤其是,重新定义现有参数将产生错误。
例如,以下是使用单个列表参数为图形自动生成的参数块:
parameters pblock rollout:params ( MyList_Tab type:#floatTab tabSizeVariable:true on MyList_Tab tabChanged action index count do ( if (paramsOpen) do mcgAPOps.FloatA_TabChanged action index count (this.params.MyList_UI) MyList_List MyList_Tab ) on MyList_Tab set val index do ( if (paramsOpen) do mcgAPOps.FloatA_TabSet val index (this.params.MyList_UI) MyList_List ) _dummy type:#boolean -- this exists to enable easy invalidation of the object pluginGraph type:#filename assettype:#MaxCreationGraph readOnly:true enumAsAsset:true pluginGraphDependencies type:#filenametab assettype:#MaxCreationGraph readOnly:true enumAsAsset:true tabSize:0 tabSizeVariable:true )
可以通过编辑“自定义 UI”属性来添加参数并覆盖参数事件,如下所示:
-- Reopen the parameter block
parameters pblock rollout:params
(
-- Add to the parameter block
MyExtraParam default:0 type:#float
-- Override the event handler for adding or removing an item in MyList
on MyList_Tab tabChanged action index count do
(
-- my custom code goes here
)
-- Override the event handler for setting a value in MyList
on MyList_Tab set val index do
(
-- my custom code goes here
)
)
rollout params "Parameters"
(
-- Restore the default rollout contents
<<ParamUIDefs>>
<<RolloutParamsHanders>>
-- Add UI for added parameter if desired
spinner MyExtraParam "My Pretty Name" range:[-100, 100, 0] type:#float
-- Redefine the rollout event handlers (not included in ParamUIDefs)
on params open do
(
paramsOpen = true mcgAPOps.OneColParamsOpen MyList_UI MyList_Tab mcgAPOps.ToStringFunc #("MyList") selected:&MyList_selection
)
on params close do
(
mcgAPOps.OneColParamsClose MyList_UI selected:&MyList_selection paramsOpen = false
)
)
如果定义了其他参数块,请记住:在任意脚本插件中,每个参数块都只能与一个卷展栏相关联,而两个或多个参数块无法与相同的参数块相关联。