@@ -42,6 +42,7 @@ class BaseCommand(OpenMayaMPx.MPxCommand, LoggerMixin):
42
42
def __init__ (self ):
43
43
OpenMayaMPx .MPxCommand .__init__ (self )
44
44
LoggerMixin .__init__ (self )
45
+ self ._exportSet = "UnityFbxExportSet"
45
46
46
47
def __del__ (self ):
47
48
LoggerMixin .__del__ (self )
@@ -107,14 +108,29 @@ def doIt(self, args):
107
108
108
109
callbackId = OpenMaya .MSceneMessage .addCheckFileCallback (OpenMaya .MSceneMessage .kBeforeImportCheck , self .beforeImport )
109
110
callbackId2 = OpenMaya .MSceneMessage .addCallback (OpenMaya .MSceneMessage .kAfterImport , self .afterImport )
110
-
111
+
112
+ # Gather everything that is in the scene
113
+ origItemsInScene = maya .cmds .ls (tr = True , o = True , r = True )
114
+
111
115
strCmd = 'Import'
112
116
self .displayDebug ('doIt {0}' .format (strCmd ))
113
- maya .mel . eval ( strCmd )
117
+ result = maya .cmds . Import ( )
114
118
119
+ # figure out what has been added after import
120
+ itemsInScene = maya .cmds .ls (tr = True , o = True , r = True )
121
+ newItems = list (set (itemsInScene ) - set (origItemsInScene ))
122
+
123
+ # Get or create the Unity Fbx Export Set
124
+ allSets = maya .cmds .listSets (allSets = True )
125
+ if not self ._exportSet in allSets :
126
+ # couldn't find export set so create it
127
+ maya .cmds .sets (name = self ._exportSet )
128
+
129
+ maya .cmds .sets (newItems , add = self ._exportSet )
130
+
115
131
OpenMaya .MMessage .removeCallback (callbackId )
116
132
OpenMaya .MMessage .removeCallback (callbackId2 )
117
-
133
+
118
134
@classmethod
119
135
def invoke (cls ):
120
136
"""
0 commit comments