mirror of
https://github.com/AssetRipper/AssetRipper.git
synced 2025-12-11 20:15:29 +01:00
parent
5ffc04cfa5
commit
a47e7ea326
@ -49,6 +49,10 @@ namespace AssetRipper.Export.UnityProjects.Project
|
||||
{
|
||||
AssetExporter.Export(container, ExportableAssets, filePath, fileSystem);
|
||||
IDefaultImporter sceneImporter = DefaultImporter.Create(container.File, container.ExportVersion);
|
||||
if (sceneImporter.Has_AssetBundleName_R() && Hierarchy.AssetBundleName is not null)
|
||||
{
|
||||
sceneImporter.AssetBundleName_R = Hierarchy.AssetBundleName;
|
||||
}
|
||||
Meta meta = new Meta(GUID, sceneImporter);
|
||||
ExportMeta(container, meta, filePath, fileSystem);
|
||||
return true;
|
||||
|
||||
@ -4,8 +4,10 @@ using AssetRipper.Import.Logging;
|
||||
using AssetRipper.SourceGenerated;
|
||||
using AssetRipper.SourceGenerated.Classes.ClassID_1;
|
||||
using AssetRipper.SourceGenerated.Classes.ClassID_1001;
|
||||
using AssetRipper.SourceGenerated.Classes.ClassID_142;
|
||||
using AssetRipper.SourceGenerated.Classes.ClassID_4;
|
||||
using AssetRipper.SourceGenerated.Extensions;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace AssetRipper.Processing.Prefabs;
|
||||
|
||||
@ -28,6 +30,21 @@ public sealed class PrefabProcessor : IAssetProcessor
|
||||
ProcessedAssetCollection sceneCollection = GetOrCreateSceneCollection(gameData, processedBundle, sceneCollectionDictionary, scene);
|
||||
SceneHierarchyObject sceneHierarchy = SceneHierarchyObject.Create(sceneCollection, scene);
|
||||
gameObjectsAlreadyProcessed.AddRange(sceneHierarchy.GameObjects);
|
||||
|
||||
Bundle? bundle = scene.Collections.Select(c => c.Bundle).FirstOrDefault(b => b is SerializedBundle);
|
||||
if (bundle is not null)
|
||||
{
|
||||
IAssetBundle? assetBundleAsset = bundle.FetchAssets().OfType<IAssetBundle>().FirstOrDefault();
|
||||
if (assetBundleAsset is not null)
|
||||
{
|
||||
Debug.Assert(!assetBundleAsset.Has_IsStreamedSceneAssetBundle() || assetBundleAsset.IsStreamedSceneAssetBundle);
|
||||
sceneHierarchy.AssetBundleName = assetBundleAsset.GetAssetBundleName();
|
||||
}
|
||||
else
|
||||
{
|
||||
sceneHierarchy.AssetBundleName = bundle.Name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Create hierarchies for prefabs with an existing PrefabInstance
|
||||
|
||||
@ -16,7 +16,14 @@ namespace AssetRipper.SourceGenerated.Extensions
|
||||
|
||||
public static string GetAssetBundleName(this IAssetBundle bundle)
|
||||
{
|
||||
return bundle.Has_AssetBundleName_R() ? bundle.AssetBundleName_R : bundle.Collection.Bundle.Name;
|
||||
if (bundle.Has_AssetBundleName_R() && !bundle.AssetBundleName_R.IsEmpty)
|
||||
{
|
||||
return bundle.AssetBundleName_R;
|
||||
}
|
||||
else
|
||||
{
|
||||
return bundle.Collection.Bundle.Name;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user