
There is an asset in the store I grabbed. the coding is WAY above my head, I got about half of it and integrated and adapted what I can to it. im going as far as I can with it and ill come back in a few month when I understand t better.
57 lines
2.0 KiB
C#
57 lines
2.0 KiB
C#
using System;
|
|
using System.IO;
|
|
using System.Text.RegularExpressions;
|
|
using UnityEngine.ResourceManagement.ResourceProviders;
|
|
using UnityEngine.ResourceManagement.Util;
|
|
|
|
namespace UnityEngine.AddressableAssets.ResourceProviders.Tests
|
|
{
|
|
public class TextDataProviderStub : TextDataProvider
|
|
{
|
|
TextDataProvider m_TextDataProvider;
|
|
string m_FakeRemoteFolder;
|
|
public TextDataProviderStub(string fakeRemoteFolder, TextDataProvider textDataProvider)
|
|
{
|
|
m_TextDataProvider = textDataProvider;
|
|
m_FakeRemoteFolder = fakeRemoteFolder;
|
|
}
|
|
|
|
public override string ProviderId => m_TextDataProvider.ProviderId;
|
|
|
|
public override void Provide(ProvideHandle provideHandle)
|
|
{
|
|
new InternalOpStub(m_FakeRemoteFolder).Start(provideHandle, m_TextDataProvider);
|
|
}
|
|
|
|
internal class InternalOpStub : TextDataProvider.InternalOp
|
|
{
|
|
string m_FakeRemoteFolder;
|
|
static readonly Regex k_Pattern = new Regex(@"http://[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}");
|
|
public InternalOpStub(string fakeRemoteFolder)
|
|
{
|
|
m_FakeRemoteFolder = fakeRemoteFolder;
|
|
}
|
|
|
|
protected override void SendWebRequest(string path)
|
|
{
|
|
string pathWithFakeRemoteFolder = k_Pattern.Replace(ResourceManagerConfig.StripQueryParameters(path), m_FakeRemoteFolder);
|
|
|
|
string fileText = null;
|
|
Exception ex = null;
|
|
if (File.Exists(pathWithFakeRemoteFolder))
|
|
fileText = File.ReadAllText(pathWithFakeRemoteFolder);
|
|
else
|
|
ex = new Exception($"{nameof(TextDataProvider)} unable to load from url {path}");
|
|
|
|
CompleteOperation(fileText, ex);
|
|
}
|
|
}
|
|
}
|
|
|
|
public class JsonAssetProviderStub : TextDataProviderStub
|
|
{
|
|
public JsonAssetProviderStub(string fakeRemoteFolder, JsonAssetProvider jsonAssetProvider)
|
|
: base(fakeRemoteFolder, jsonAssetProvider) {}
|
|
}
|
|
}
|