Unity Bundle Loader
unknown
csharp
2 years ago
2.0 kB
272
Indexable
using System.Collections;
using System.IO;
using UnityEngine;
public class AssetBundleLoader : MonoBehaviour
{
private string bundleFolderPath = "D:/UnityProjects/SDK/EscapeFromTarkov-SDK/Assets/BundlesToLoad";
void Start()
{
LoadAssetBundles();
}
void LoadAssetBundles()
{
string[] bundlePaths = Directory.GetFiles(bundleFolderPath, "*.bundle");
foreach (string bundlePath in bundlePaths)
{
LoadAssetBundle(bundlePath);
}
}
void LoadAssetBundle(string path)
{
path = path.Replace("\\", "/");
AssetBundle assetBundle = AssetBundle.LoadFromFile(path);
if (assetBundle == null)
{
Debug.LogError("Failed to load asset bundle at path: " + path);
return;
}
Object[] assets = assetBundle.LoadAllAssets();
foreach (Object asset in assets)
{
if (asset is GameObject)
{
GameObject instantiatedObject = Instantiate((GameObject)asset);
MeshRenderer[] meshRenderers = instantiatedObject.GetComponentsInChildren<MeshRenderer>();
foreach (MeshRenderer renderer in meshRenderers)
{
ChangeShader(renderer);
}
SkinnedMeshRenderer[] skinnedMeshRenderers = instantiatedObject.GetComponentsInChildren<SkinnedMeshRenderer>();
foreach (SkinnedMeshRenderer renderer in skinnedMeshRenderers)
{
ChangeShader(renderer);
}
}
}
assetBundle.Unload(false);
}
void ChangeShader(Renderer renderer)
{
if (renderer.material != null)
{
Shader newShader = Shader.Find("p0/Reflective/Bumped Specular SMap");
if (newShader != null)
{
renderer.material.shader = newShader;
}
}
}
}Editor is loading...
Leave a Comment