Sie können eine Eigenschaft von Benutzerdefinierte UI des MCG-Werkzeugs bearbeiten, um den automatisch erzeugten Parameterblock zu erweitern. Außerdem können Sie die Parameter-Ereignis-Handler überschreiben oder zusätzliche Parameterblöcke erstellen.
Beispielsweise können Sie einen Parameter hinzufügen, der im Diagramm nicht enthalten ist, der aber an anderer Stelle in Ihrem benutzerdefinierten MAXScript-Code verwendet wird. Sie können auch die Parameter-Ereignis-Handler überschreiben, z. B. für Listenparameter im Diagramm.
Dazu öffnen Sie erneut den Parameterblock und nehmen die erforderlichen Änderungen vor. Beachten Sie, dass dabei der vorherige Block nicht vollständig überschrieben wird. Insbesondere das Neudefinieren eines vorhandenen Parameters verursacht einen Fehler.
Dies ist beispielsweise der automatisch erzeugte Parameterblock für ein Diagramm mit einem einzigen Listenparameter:
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 )
Sie können einen Parameter hinzufügen und die Parameterereignisse überschreiben, indem Sie die Eigenschaft Benutzerdefinierte UI wie folgt bearbeiten:
-- 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
)
)
Wenn Sie zusätzliche Parameterblöcke definieren, sollten Sie beachten, dass in jedem Skript-Plug-In jeder Parameterblock jeweils nur einem Rollout zugeordnet werden kann und dass nicht zwei oder mehr Parameterblöcke mit dem gleichen Parameterblock verknüpft sein können.