private static void CreateNewAsset() { MainAssetType mainAsset = ScriptableObject.CreateInstance <MainAssetType>(); AssetDatabase.CreateAsset(mainAsset, AssetDatabase.GenerateUniqueAssetPath("assets/NestedAsset.asset")); AssetDatabase.SaveAssets(); for (int n = 0; n < 5; n++) { SubAssetType subAsset = ScriptableObject.CreateInstance <SubAssetType>(); subAsset.AssetIndex = n; mainAsset.SubAssets.Add(subAsset); AssetDatabase.AddObjectToAsset(subAsset, mainAsset); } AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); }
public static byte[] ReadAsBytes(BinaryReader br, string name) { int num1 = -1; if (br == null) { return((byte[])null); } int num2 = br.ReadInt32(); SubAssetType subAssetType = (SubAssetType)(num2 & (int)byte.MaxValue); num1 = num2 >> 8; Console.WriteLine("!\t Skipping not implemented SubAsset: \"{0}\" of type: {1}", (object)name, (object)subAssetType); switch (subAssetType) { case SubAssetType.boolType: return(br.ReadBytes(1)); case SubAssetType.intType: return(br.ReadBytes(4)); case SubAssetType.floatType: return(br.ReadBytes(4)); case SubAssetType.stringType: return(br.ReadBytes((int)br.ReadUInt16())); case SubAssetType.stringUnicodeType: return(br.ReadBytes((int)br.ReadUInt16() * 2)); case SubAssetType.stringNameValueType: return(br.ReadBytes((int)br.ReadUInt16())); default: throw new Exception("unknown sub-asset type: " + (object)subAssetType); } }