55 lines
1.4 KiB
C#
55 lines
1.4 KiB
C#
#region Includes
|
|
using System.Collections;
|
|
|
|
using UnityEngine;
|
|
using UnityEngine.Networking;
|
|
using UnityEngine.UI;
|
|
#endregion
|
|
|
|
namespace TS.PageSlider.Demo
|
|
{
|
|
public class SliderPageLazy : MonoBehaviour
|
|
{
|
|
#region Variables
|
|
|
|
[Header("Children")]
|
|
[SerializeField] private Image _image;
|
|
|
|
public string ImageUrl { get; set; }
|
|
|
|
private PageView _pageView;
|
|
|
|
#endregion
|
|
|
|
private void Awake()
|
|
{
|
|
_pageView = GetComponent<PageView>();
|
|
_pageView.OnChangingToActiveState.AddListener(PageView_ChangingToActiveState);
|
|
}
|
|
|
|
private void PageView_ChangingToActiveState()
|
|
{
|
|
if(_image.sprite != null) { return; }
|
|
|
|
StartCoroutine(GetImageRoutine(ImageUrl));
|
|
}
|
|
|
|
private IEnumerator GetImageRoutine(string uri)
|
|
{
|
|
var request = UnityWebRequestTexture.GetTexture(uri);
|
|
yield return request.SendWebRequest();
|
|
|
|
if (request.result != UnityWebRequest.Result.Success)
|
|
{
|
|
Debug.Log(request.error);
|
|
yield break;
|
|
}
|
|
|
|
var texture = ((DownloadHandlerTexture)request.downloadHandler).texture;
|
|
|
|
_image.sprite = Sprite.Create(texture, new Rect(0.0f, 0.0f, texture.width, texture.height), new Vector2(0.5f, 0.5f), 100.0f);
|
|
_image.color = Color.white;
|
|
_image.preserveAspect = true;
|
|
}
|
|
}
|
|
} |