internal static void AddSample(PackageManifest manifest, PackageManifest.Sample sample) { string assetDirectory = GetAssetDirectory(manifest); string samplesDirectory = GetAssetsSampleDirectory(manifest); if (!sample.path.StartsWith(Paths.PackageSamplesFolder + "/")) { throw new System.Exception("Invalid sample directory"); } Directory.CreateDirectory(samplesDirectory); string sampleFolderName = sample.path.Substring(Paths.PackageSamplesFolder.Length + 1); string sampleFolder = Path.Combine(samplesDirectory, sampleFolderName); Directory.CreateDirectory(sampleFolder); CreateGitKeep.Create(sampleFolder); JObject manifestJSON = JObject.Parse(GetPackageManifestObject(manifest).text); var samplesJSON = (JArray)manifestJSON["samples"]; JObject next = new JObject( new JProperty("displayName", sample.displayName), new JProperty("description", sample.description), new JProperty("path", sample.path)); samplesJSON.Add(next); AssetDatabaseUtilities.CreateTextFile(manifestJSON.ToString(), GetPackageDirectory(manifest), Paths.PackageManifest); AssetDatabaseUtilities.UpdateAssetDatabase(); }
void OnEnable() { sample = new PackageManifest.Sample(); }