UniRx의 간단한 샘플 8 (Observable W.Get 다운로드)
이전(완료 알림)
다음 단계(Timer 및 Interval 일정 시간 후 수행)
파일 다운로드
별로 쓸 수 없는 팁을 주고 싶어 이번에 HTML을 다운받아 봤다.
파일 다운로드 같은 건 Rx가 잘하는 분야가 분명해.
겸사겸사 진전상황도 취할 겁니다.
이번에는 좀 길어요.
미리 준비하다
특별한 상황만 아니면 SS가 없습니다.
WWW라는 GameObject에서cs 스크립트를 미리 붙여넣습니다.
다운로드
WW 다운로드를 담당하는 것은 Observable WW입니다.Get 메서드.
이번에는 서류 하나 가져와.
완성 후 게임 대상을 파란색으로 설정합니다
디버그 로그에 제목을 표시합니다.
겸사겸사 DL의 진전 상황도 얻었다.
소스 코드는 다음과 같습니다.
WWWSample.csusing UnityEngine;
using System.Collections;
using UniRx;
using UniRx.Triggers;
using System;
public class WWWSample : MonoBehaviour {
// Use this for initialization
void Start()
{
//DLの進行度をプッシュしてくれるObservable
ScheduledNotifier<float> progress = new ScheduledNotifier<float>();
var watcher = progress.Subscribe(prog => Debug.Log(prog));//進行度の表示
//ダウンロード
var getter = ObservableWWW.Get("https://example.com/", null, progress)
.Subscribe(body =>
{
//完了したら青に
GetComponent<SpriteRenderer>().color = Color.blue;
//タイトルを表示
Debug.Log(body.Split(new[] { "<title>", "</title>" }, StringSplitOptions.None)[1]);
});
//gameObjectが削除されたらどちらも削除
this.OnDestroyAsObservable().Subscribe(_ => {
watcher.Dispose();
getter.Dispose();
});
}
}
먼저
ObservableWWW.Get("https://example.com/ ", null, progress)
하하
ObservableWWW.Get(string url, Hash headers = null, IProgress progress = null)
구문을 사용합니다.
url은 동그랗습니다.
헤더스도 헤더야.
프로그레스에게 말하고 설명한 진전 상황을 대단한 사람이야.
다운로드가 완료되면 값이 Subscribe로 밀어집니다.
그래서 Subscribe에서 파란색 Debug로 바뀌었어요.제목을 Log로 지정합니다(거친 방법).
반면
ScheduledNotifier progress = new ScheduledNotifier();
Get의 세 번째 매개변수이며 IObservable입니다.
이 Get에 대한 진전이 있을 겁니다.
그래서 그 값을 직접 출력합니다.
마지막은 this.On DestroyAsobservable () 가 Destroy에 호출되면 호출됩니다.
이따가 치워.
실행 결과
DL이 완성되었습니다!
기타 방법
Observable WW도 얻은 WW를 직접 반환하는GetWWW나post 투점방의 Post 방법이 있습니다.
Reference
이 문제에 관하여(UniRx의 간단한 샘플 8 (Observable W.Get 다운로드)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Marimoiro/items/dbd84ed9c6d5aa129f2a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
using UnityEngine;
using System.Collections;
using UniRx;
using UniRx.Triggers;
using System;
public class WWWSample : MonoBehaviour {
// Use this for initialization
void Start()
{
//DLの進行度をプッシュしてくれるObservable
ScheduledNotifier<float> progress = new ScheduledNotifier<float>();
var watcher = progress.Subscribe(prog => Debug.Log(prog));//進行度の表示
//ダウンロード
var getter = ObservableWWW.Get("https://example.com/", null, progress)
.Subscribe(body =>
{
//完了したら青に
GetComponent<SpriteRenderer>().color = Color.blue;
//タイトルを表示
Debug.Log(body.Split(new[] { "<title>", "</title>" }, StringSplitOptions.None)[1]);
});
//gameObjectが削除されたらどちらも削除
this.OnDestroyAsObservable().Subscribe(_ => {
watcher.Dispose();
getter.Dispose();
});
}
}
Reference
이 문제에 관하여(UniRx의 간단한 샘플 8 (Observable W.Get 다운로드)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Marimoiro/items/dbd84ed9c6d5aa129f2a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)