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();
    }
Ejemplo n.º 2
0
        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);
            }
        }