@@ -8,8 +8,25 @@ namespace Giezi.Tools
88{
99 public static class SOContextMenu
1010 {
11- private const string GieziToolsCreateSOvariantChildKey = "Giezi.Tools.CreateSoVariant.Child" ;
12- private const string GieziToolsCreateSOvariantParentKey = "Giezi.Tools.CreateSoVariant.Parent" ;
11+ private static SOData _soData = null ;
12+
13+ public static SOData SOData
14+ {
15+ get
16+ {
17+ if ( _soData == null )
18+ {
19+ Debug . Log ( AssetDatabase . GUIDToAssetPath ( "50b31bd74d19a40b293ceaeefd1c650e" ) ) ;
20+ _soData = AssetDatabase . LoadAssetAtPath < SOData > (
21+ AssetDatabase . GUIDToAssetPath ( "50b31bd74d19a40b293ceaeefd1c650e" ) ) ;
22+ Debug . Log ( _soData ) ;
23+ }
24+ return _soData ;
25+ }
26+ }
27+
28+ // private const string GieziToolsCreateSOvariantChildKey = "Giezi.Tools.CreateSoVariant.Child";
29+ // private const string GieziToolsCreateSOvariantParentKey = "Giezi.Tools.CreateSoVariant.Parent";
1330
1431 [ MenuItem ( "Assets/Create/Create SO Variant" , false , 2000 ) ]
1532 static void CreateSOVariant ( )
@@ -25,8 +42,11 @@ static void CreateSOVariant()
2542 AssetDatabase . CreateAsset ( newAsset , newAssetPath ) ;
2643 EditorUtility . SetDirty ( newAsset ) ;
2744
28- PlayerPrefs . SetString ( GieziToolsCreateSOvariantChildKey , newAssetPath ) ;
29- PlayerPrefs . SetString ( GieziToolsCreateSOvariantParentKey , assetPath ) ;
45+ // PlayerPrefs.SetString(GieziToolsCreateSOvariantChildKey, newAssetPath);
46+ // PlayerPrefs.SetString(GieziToolsCreateSOvariantParentKey, assetPath);
47+ SOData . SOVariantCreationData = new SOVariantCreationData ( ( ScriptableObject ) activeObject , newAsset ) ;
48+
49+ EditorUtility . SetDirty ( SOData ) ;
3050
3151 AssetDatabase . SaveAssets ( ) ;
3252
@@ -44,27 +64,19 @@ static bool ValidateCreateSOVariant()
4464 [ UnityEditor . Callbacks . DidReloadScripts ]
4565 static void SetParentAfterReload ( )
4666 {
47- if ( ! PlayerPrefs . HasKey ( GieziToolsCreateSOvariantChildKey ) )
67+ if ( SOData . SOVariantCreationData == null || ! SOData . SOVariantCreationData . CreateSoVariant )
4868 return ;
4969
50- if ( AssetImporter . GetAtPath ( PlayerPrefs . GetString ( GieziToolsCreateSOvariantChildKey ) ) == null )
51- {
52- Debug . Log ( "<color=orange>SOVariant: </color>Asset Importer does not exist yet, waiting for Unity to reload." ) ;
70+ if ( SOData . SOVariantCreationData . Child == null )
5371 return ;
54- }
55-
56- ScriptableObject parent =
57- AssetDatabase . LoadAssetAtPath < ScriptableObject > (
58- PlayerPrefs . GetString ( GieziToolsCreateSOvariantParentKey ) ) ;
72+
73+ ScriptableObject parent = SOData . SOVariantCreationData . Parent ;
74+ ScriptableObject child = SOData . SOVariantCreationData . Child ;
5975
60- ScriptableObject child =
61- AssetDatabase . LoadAssetAtPath < ScriptableObject > (
62- PlayerPrefs . GetString ( GieziToolsCreateSOvariantChildKey ) ) ;
6376
6477 SOVariantHelper < ScriptableObject > . SetParent ( child , parent ) ;
65-
66- PlayerPrefs . DeleteKey ( GieziToolsCreateSOvariantParentKey ) ;
67- PlayerPrefs . DeleteKey ( GieziToolsCreateSOvariantChildKey ) ;
78+
79+ SOData . SOVariantCreationData = null ;
6880
6981 Debug . Log ( $ "<color=orange>SOVariant: </color>Created new SO Variant { child . name } with parent.") ;
7082 }
0 commit comments