1
+ using System . IO ;
1
2
using UnityEditor ;
2
3
using UnityEngine ;
3
4
@@ -16,15 +17,22 @@ public override void OnInspectorGUI()
16
17
17
18
EditorGUILayout . BeginVertical ( GUI . skin . box ) ;
18
19
{
19
- if ( GUILayout . Button ( "Convert " ) )
20
+ if ( GUILayout . Button ( "ConvertAnim " ) )
20
21
{
21
- Convert ( convertAnim ) ;
22
+ ConvertAnim ( convertAnim ) ;
23
+ }
24
+
25
+ GUILayout . Space ( 5 ) ;
26
+
27
+ if ( GUILayout . Button ( "ConvertPacket" ) )
28
+ {
29
+ ConvertPacket ( convertAnim ) ;
22
30
}
23
31
}
24
32
EditorGUILayout . EndVertical ( ) ;
25
33
}
26
34
27
- private static void Convert ( ConvertAnim convertAnim )
35
+ private static void ConvertAnim ( ConvertAnim convertAnim )
28
36
{
29
37
var binary = convertAnim . binary ;
30
38
if ( ! binary )
@@ -44,5 +52,41 @@ private static void Convert(ConvertAnim convertAnim)
44
52
45
53
Debug . Log ( "Conversion complete" ) ;
46
54
}
55
+
56
+ private static void ConvertPacket ( ConvertAnim convertAnim )
57
+ {
58
+ var binary = convertAnim . binary ;
59
+ if ( ! binary )
60
+ {
61
+ Debug . LogError ( "Binary is null" ) ;
62
+ return ;
63
+ }
64
+ if ( string . IsNullOrEmpty ( convertAnim . OutputDirectory ) )
65
+ {
66
+ Debug . LogError ( "Output directory is null or empty" ) ;
67
+ return ;
68
+ }
69
+
70
+ var timelineSettingPath = convertAnim . OutputDirectory + "/DmxTimeline.asset" ;
71
+ var dmxTimelineSetting = AssetDatabase . LoadAssetAtPath ( timelineSettingPath , typeof ( DmxTimelineSetting ) ) as DmxTimelineSetting ;
72
+ if ( dmxTimelineSetting is null )
73
+ {
74
+ Debug . LogError ( "DmxTimelineSetting is null" ) ;
75
+ return ;
76
+ }
77
+
78
+ Debug . Log ( $ "ArtNet Recorder: { dmxTimelineSetting . DmxTimelines . Count } timelines found") ;
79
+ var timelineConverter = new TimelineConverter ( dmxTimelineSetting ) ;
80
+ var dmxPackets = timelineConverter . ToDmxPackets ( ) ;
81
+ var storeData = RecordData . Serialize ( dmxPackets ) ;
82
+
83
+
84
+ var path = convertAnim . OutputDirectory + "/DmxPackets.bytes" ;
85
+ var exists = File . Exists ( path ) ;
86
+ File . WriteAllBytes ( path , storeData ) ;
87
+ var message = exists ? "Data updated" : "Data stored" ;
88
+ Debug . Log ( $ "ArtNet Recorder: { message } at { path } ") ;
89
+ Debug . Log ( "Conversion complete" ) ;
90
+ }
47
91
}
48
92
}
0 commit comments