修改参数块

可以编辑 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
		)
	)

如果定义了其他参数块,请记住:在任意脚本插件中,每个参数块都只能与一个卷展栏相关联,而两个或多个参数块无法与相同的参数块相关联。