Sie können einen MCG-Controller erstellen, der über einem vorhandenen Animations-Controller auf ein Objekt in einer Szene angewendet werden kann und dessen Ausgabe als Eingabe verwendet. Dies ist eine Alternative zum Arbeitsablauf, bei dem der obersten Controller zuerst angewendet wird und anschließend zusätzliche Controller basierend auf dessen Eingaben angewendet werden.
Dazu muss das Diagramm über einen Parameterknoten zum Empfangen der Ausgabe des Unter-Controllers verfügen. Anschließend bearbeiten Sie die Eigenschaft Benutzerdefinierte UI, um einen Handler für das Kopieren-Ereignis hinzuzufügen.
Sie können auch einen Handler für das setValue Val commit-Ereignis hinzufügen. Dadurch wird der Wert vom Unter-Controller durchgereicht, und Sie können mit dem Unter-Controller interagieren, als wäre er weiterhin der aktive Controller. So können Sie zum Beispiel eine MCG-Controller erstellen, der über einem Standard-Positions-Controller angewendet wird, um die Position zu klammern, während Sie weiterhin das Objekt mit dem Hilfsmittel "Auswählen und verschieben" verschieben können.
on copy source do
(
--Grab the current controller and use its value to drive this controller.
try
(
this.SubController.controller = source
)
catch
(
this.SubController = source
)
return true
)
on setValue val relVal commit do
(
--Set the value of the subController.
--This controller acts like a pass-through.
try
(
SubController.value = val
)
catch
(
SubController = val
)
)
Beachten Sie, dass einige Controller-Typen über Controller- und Wert-Eigenschaften verfügen, während bei anderen der Controller an sich direkt festgelegt wird. Sie können es entweder wie oben versuchen oder einfach entsprechend dem jeweiligen Parametertyp vorgehen.