117 lines
2.3 KiB
C#
117 lines
2.3 KiB
C#
|
#if UNITY_2018_3_OR_NEWER
|
|||
|
#define USE_UNITYWEBREQUEST
|
|||
|
#endif
|
|||
|
|
|||
|
#if USE_UNITYWEBREQUEST
|
|||
|
using UnityEngine.Networking;
|
|||
|
#else
|
|||
|
using UnityEngine;
|
|||
|
#endif
|
|||
|
|
|||
|
using System;
|
|||
|
using System.Collections;
|
|||
|
|
|||
|
namespace Paroxe.PdfRenderer
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// WWW is deprecated in recent version of Unity but it's not available on older version like Unity 5.3
|
|||
|
/// This class only acts like a shim supporting the right implementation depending on which version of
|
|||
|
/// Unity being use.
|
|||
|
/// </summary>
|
|||
|
public sealed class PDFWebRequest
|
|||
|
#if USE_UNITYWEBREQUEST
|
|||
|
: UnityWebRequest, IEnumerator
|
|||
|
#else
|
|||
|
: IDisposable, IEnumerator
|
|||
|
#endif
|
|||
|
{
|
|||
|
#if !USE_UNITYWEBREQUEST
|
|||
|
private WWW m_WWW;
|
|||
|
#endif
|
|||
|
|
|||
|
public PDFWebRequest(string url)
|
|||
|
#if USE_UNITYWEBREQUEST
|
|||
|
: base(url)
|
|||
|
#endif
|
|||
|
{
|
|||
|
#if USE_UNITYWEBREQUEST
|
|||
|
downloadHandler = new DownloadHandlerBuffer();
|
|||
|
disposeDownloadHandlerOnDispose = true;
|
|||
|
#else
|
|||
|
m_WWW = new WWW(url);
|
|||
|
#endif
|
|||
|
}
|
|||
|
|
|||
|
#if USE_UNITYWEBREQUEST
|
|||
|
public float progress
|
|||
|
{
|
|||
|
get { return downloadProgress; }
|
|||
|
}
|
|||
|
|
|||
|
public byte[] bytes
|
|||
|
{
|
|||
|
get { return downloadHandler.data; }
|
|||
|
}
|
|||
|
|
|||
|
object IEnumerator.Current
|
|||
|
{
|
|||
|
get { return null; }
|
|||
|
}
|
|||
|
|
|||
|
bool IEnumerator.MoveNext()
|
|||
|
{
|
|||
|
return !isDone;
|
|||
|
}
|
|||
|
|
|||
|
void IEnumerator.Reset()
|
|||
|
{
|
|||
|
throw new NotImplementedException();
|
|||
|
}
|
|||
|
#else
|
|||
|
public float progress
|
|||
|
{
|
|||
|
get { return m_WWW.progress; }
|
|||
|
}
|
|||
|
|
|||
|
public byte[] bytes
|
|||
|
{
|
|||
|
get { return m_WWW.bytes; }
|
|||
|
}
|
|||
|
|
|||
|
public string error
|
|||
|
{
|
|||
|
get { return m_WWW.error; }
|
|||
|
}
|
|||
|
|
|||
|
public bool isDone
|
|||
|
{
|
|||
|
get { return m_WWW.isDone; }
|
|||
|
}
|
|||
|
|
|||
|
object IEnumerator.Current
|
|||
|
{
|
|||
|
get { return null; }
|
|||
|
}
|
|||
|
|
|||
|
bool IEnumerator.MoveNext()
|
|||
|
{
|
|||
|
return !isDone;
|
|||
|
}
|
|||
|
|
|||
|
void IEnumerator.Reset()
|
|||
|
{
|
|||
|
throw new NotImplementedException();
|
|||
|
}
|
|||
|
#endif
|
|||
|
|
|||
|
#if !USE_UNITYWEBREQUEST
|
|||
|
public void SendWebRequest() { }
|
|||
|
|
|||
|
public void Dispose()
|
|||
|
{
|
|||
|
m_WWW.Dispose();
|
|||
|
}
|
|||
|
#endif
|
|||
|
}
|
|||
|
}
|