@@ -83,34 +83,65 @@ macroScript UnityExport category:"File-Export"
83
83
)
84
84
)
85
85
86
+
87
+ fileMenuName = " &File"
88
+ importMenuName = " &Import"
89
+ exportMenuName = " &Export"
90
+ if (maxVersion())[1 ] < 20000 then (
91
+ importMenuName += " ..."
92
+ exportMenuName += " ..."
93
+ )
94
+
95
+ fn getFileSubmenuItem menuName = (
96
+ foundMenuItem = undefined
97
+ fileMenuItem = menuMan.findMenu fileMenuName
98
+ local notFound = true
99
+ if fileMenuItem != undefined then (
100
+ for i= 1 to fileMenuItem.numItems() while notFound do (
101
+ mi = fileMenuItem.getItem i
102
+ if mi.getTitle() == menuName then (
103
+ foundMenuItem = mi
104
+ notFound = false
105
+ )
106
+ )
107
+ )
108
+ foundMenuItem
109
+ )
110
+
111
+ -- get the import menu
112
+ fn getImportMenu = (
113
+ getFileSubMenuItem importMenuName
114
+ )
115
+
116
+ -- get the export menu
117
+ fn getExportMenu = (
118
+ getFileSubMenuItem exportMenuName
119
+ )
120
+
86
121
-- Setup UI
87
- importMenuName = " File-Import"
88
- exportMenuName = " File-Export"
89
122
fn setupUnityPluginUI = (
90
- importMenu = menuMan.findMenu importMenuName
91
- exportMenu = menuMan.findMenu exportMenuName
123
+ importMenu = getImportMenu()
124
+ exportMenu = getExportMenu()
92
125
if importMenu != undefined and exportMenu != undefined do
93
126
(
94
127
unityImportTitle = " Import from Unity"
95
128
unityExportTitle = " Export to Unity"
96
129
97
130
-- check if menu items already exists
98
131
foundUnityImport = false
99
- for i= 1 to importMenu.numItems() do (
132
+ for i= 1 to importMenu.numItems() while not foundUnityImport do (
100
133
mi = importMenu.getItem i
101
134
if mi.getTitle() == unityImportTitle then (
102
135
foundUnityImport = true
103
136
global unityImportAction = mi
104
- break
105
137
)
106
138
)
107
139
foundUnityExport = false
108
- for i= 1 to exportMenu.numItems() do (
140
+ for i= 1 to exportMenu.numItems() while not foundUnityExport do (
109
141
mi = exportMenu.getItem i
110
142
if mi.getTitle() == unityExportTitle then (
111
143
foundUnityExport = true
112
144
global unityExportAction = mi
113
- break
114
145
)
115
146
)
116
147
@@ -139,8 +170,8 @@ setupUnityPluginUI()
139
170
140
171
-- Make sure that Menu gets removed at shutdown, force menu to reload each time Max is opened
141
172
callbacks.addScript #preSavingMenus (
142
- " importMenu = menuMan.findMenu \" " + importMenuName + " \" ; \
143
- exportMenu = menuMan.findMenu \" " + exportMenuName + " \" ; \
173
+ " importMenu = getImportMenu() ; \
174
+ exportMenu = getExportMenu() ; \
144
175
if importMenu != undefined and unityImportAction != undefined then( \
145
176
importMenu.removeItem unityImportAction; \
146
177
) \
0 commit comments