Skip to content

Commit e5f1d0f

Browse files
committed
UNI-42752 code review fixes
- change rootDummyName - move dummy creation/setting into afterImport()
1 parent 2b0a5ea commit e5f1d0f

File tree

1 file changed

+67
-62
lines changed

1 file changed

+67
-62
lines changed

Assets/Integrations/Autodesk/max/scripts/UnityFbxForMaxPlugin.ms

Lines changed: 67 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,56 @@ macroScript UnityImport category:"Unity" tooltip:"Import an FBX file from a Unit
33
(
44
origObjects = #()
55
currSetName = ""
6-
rootDummyName = "UnityFbxRootDummy"
6+
rootDummyName = "UnityFbxExportSets"
7+
unityFbxFilePathAttr = ""
8+
unityFbxFileNameAttr = ""
9+
unityAnimFileNameAttr = ""
10+
unityAnimFilePathAttr = ""
11+
isAnimFile = false
712

813
persistent global unityAskSetUnits
914

15+
fn getOrCreateDummy name = (
16+
unityDummy = getNodeByName (name)
17+
if (unityDummy == undefined) do (
18+
unityDummy = Dummy()
19+
unityDummy.name = name
20+
unityDummy.boxsize = [1,1,1]
21+
)
22+
unityDummy -- return dummy
23+
)
24+
25+
fn getOrCreateRootDummy = (
26+
getOrCreateDummy rootDummyName
27+
)
28+
29+
fn getOrCreateSettingsDummy name = (
30+
unityDummy = getOrCreateDummy name
31+
32+
if not (isProperty unityDummy "modelFilePath") do (
33+
unitySetData = attributes unityData
34+
(
35+
parameters main rollout:params
36+
(
37+
modelFilePath type: #string ui:filep default:""
38+
modelFileName type: #string ui:filen default:""
39+
animFilePath type: #string ui:afilep default:""
40+
animFileName type: #string ui:afilen default:""
41+
)
42+
rollout params "Unity Export Parameters"
43+
(
44+
edittext filep "Model File Path:" text:modelFilePath readOnly:false labelOnTop:true
45+
edittext filen "Model File Name:" text:modelFileName readOnly:false labelOnTop:true
46+
edittext afilep "Animation File Path:" text:animFilePath readOnly:false labelOnTop:true
47+
edittext afilen "Animation File Name:" text:animFileName readOnly:false labelOnTop:true
48+
)
49+
)
50+
custAttributes.add unityDummy unitySetData
51+
)
52+
53+
unityDummy -- return dummy
54+
)
55+
1056
global afterImport
1157
fn afterImport = (
1258
unityFbxExportSet = #()
@@ -21,6 +67,21 @@ macroScript UnityImport category:"Unity" tooltip:"Import an FBX file from a Unit
2167
)
2268
)
2369
selectionSets[currSetName] = unityFbxExportSet
70+
71+
-- check if dummy already exists in scene
72+
unityDummy = getOrCreateSettingsDummy currSetName
73+
74+
if((not isAnimFile) or unityDummy.unityData.modelFilePath == "") do (
75+
unityDummy.unityData.modelFilePath = unityFbxFilePathAttr
76+
)
77+
if((not isAnimFile) or unityDummy.unityData.modelFileName == "") do (
78+
unityDummy.unityData.modelFileName = unityFbxFileNameAttr
79+
)
80+
unityDummy.unityData.animFilePath = unityAnimFilePathAttr
81+
unityDummy.unityData.animFileName = unityAnimFileNameAttr
82+
83+
unityRootDummy = getOrCreateRootDummy()
84+
unityDummy.parent = unityRootDummy
2485
);
2586

2687
fn loadUnityFbxImportSettings = (
@@ -50,46 +111,6 @@ macroScript UnityImport category:"Unity" tooltip:"Import an FBX file from a Unit
50111
undefined
51112
)
52113

53-
fn getOrCreateDummy name = (
54-
unityDummy = getNodeByName (name)
55-
if (unityDummy == undefined) do (
56-
unityDummy = Dummy()
57-
unityDummy.name = name
58-
unityDummy.boxsize = [1,1,1]
59-
)
60-
unityDummy -- return dummy
61-
)
62-
63-
fn getOrCreateRootDummy = (
64-
getOrCreateDummy rootDummyName
65-
)
66-
67-
fn getOrCreateSettingsDummy name = (
68-
unityDummy = getOrCreateDummy name
69-
70-
if not (isProperty unityDummy "modelFilePath") do (
71-
unitySetData = attributes unityData
72-
(
73-
parameters main rollout:params
74-
(
75-
modelFilePath type: #string ui:filep default:""
76-
modelFileName type: #string ui:filen default:""
77-
animFilePath type: #string ui:afilep default:""
78-
animFileName type: #string ui:afilen default:""
79-
)
80-
rollout params "Unity Export Parameters"
81-
(
82-
edittext filep "Model File Path:" text:modelFilePath readOnly:false labelOnTop:true
83-
edittext filen "Model File Name:" text:modelFileName readOnly:false labelOnTop:true
84-
edittext afilep "Animation File Path:" text:animFilePath readOnly:false labelOnTop:true
85-
edittext afilen "Animation File Name:" text:animFileName readOnly:false labelOnTop:true
86-
)
87-
)
88-
custAttributes.add unityDummy unitySetData
89-
)
90-
unityDummy -- return dummy
91-
)
92-
93114
-- Make sure the FbxImporter plugin is loaded
94115
pluginManager.loadClass FbxImporter
95116

@@ -119,17 +140,17 @@ macroScript UnityImport category:"Unity" tooltip:"Import an FBX file from a Unit
119140
)
120141
)
121142

122-
local unityFbxFilePathAttr = ""
143+
unityFbxFilePathAttr = ""
123144
for fbxFileName in fbxFileNames do (
124145
-- Get all objects in scene before importAction
125146
origObjects = objects as array
126147

127148
unityFbxFilePathAttr = getFilenamePath fbxFileName
128-
local unityFbxFileNameAttr = filenameFromPath fbxFileName
129-
local unityFbxFileName = getFilenameFile fbxFileName
149+
unityFbxFileNameAttr = filenameFromPath fbxFileName
150+
unityFbxFileName = getFilenameFile fbxFileName
130151

131-
local unityAnimFilePathAttr = unityFbxFilePathAttr
132-
local unityAnimFileNameAttr = unityFbxFileNameAttr
152+
unityAnimFilePathAttr = unityFbxFilePathAttr
153+
unityAnimFileNameAttr = unityFbxFileNameAttr
133154

134155
-- check if importing an animation file (contains @ symbol)
135156
local isAnimFile = false
@@ -144,22 +165,6 @@ macroScript UnityImport category:"Unity" tooltip:"Import an FBX file from a Unit
144165

145166
importFile fbxFileName #noPrompt using:FBXIMP
146167

147-
-- check if dummy already exists in scene
148-
currSetName = unityFbxFileName + "_UnityExportSet"
149-
unityDummy = getOrCreateSettingsDummy currSetName
150-
151-
if((not isAnimFile) or unityDummy.unityData.modelFilePath == "") do (
152-
unityDummy.unityData.modelFilePath = unityFbxFilePathAttr
153-
)
154-
if((not isAnimFile) or unityDummy.unityData.modelFileName == "") do (
155-
unityDummy.unityData.modelFileName = unityFbxFileNameAttr
156-
)
157-
unityDummy.unityData.animFilePath = unityAnimFilePathAttr
158-
unityDummy.unityData.animFileName = unityAnimFileNameAttr
159-
160-
unityRootDummy = getOrCreateRootDummy()
161-
unityDummy.parent = unityRootDummy
162-
163168
callbacks.removeScripts #postImport id:#unityPlugin
164169
)
165170

0 commit comments

Comments
 (0)