public virtual bool Load(string path,
string texturePrefix = "", string fontPrefix = "",
float zOffset = 0, float zRate = 1, int renderQueueOffset = 0,
Camera camera = null, bool autoUpdate = true,
LWFDataCallback lwfDataCallback = null,
LWFCallback lwfLoadCallback = null,
LWFCallback lwfDestroyCallback = null,
LWFDataLoader lwfDataLoader = null,
TextureLoader textureLoader = null,
TextureUnloader textureUnloader = null
#if LWF_USE_LUA
, object luaState = null
#endif
)
{
lwfName = path;
callUpdate = autoUpdate;
if (camera == null)
camera = Camera.main;
if (lwfLoadCallback != null)
lwfLoadCallbacks.Add(lwfLoadCallback);
if (lwfDestroyCallback != null)
lwfDestroyCallbacks.Add(lwfDestroyCallback);
LWF.Data data =
ResourceCache.SharedInstance().LoadLWFData(lwfName, lwfDataLoader);
if (data == null || !data.Check())
return false;
if (lwfDataCallback != null && !lwfDataCallback(data))
return false;
if (rendererFactoryConstructor != null) {
RendererFactoryArguments arg = new RendererFactoryArguments(
data, gameObject, zOffset, zRate, renderQueueOffset, camera,
texturePrefix, fontPrefix, textureLoader, textureUnloader);
factory = rendererFactoryConstructor(arg);
} else if (useCombinedMeshRenderer && data.textures.Length == 1) {
factory = new LWF.CombinedMeshRenderer.Factory(
data, gameObject, zOffset, zRate, renderQueueOffset, camera,
texturePrefix, fontPrefix, textureLoader, textureUnloader);
} else {
factory = new LWF.DrawMeshRenderer.Factory(
data, gameObject, zOffset, zRate, renderQueueOffset, camera,
texturePrefix, fontPrefix, textureLoader, textureUnloader);
}
#if LWF_USE_LUA
lwf = new LWF.LWF(data, factory, luaState);
#else
lwf = new LWF.LWF(data, factory);
#endif
OnLoad();
return true;
}