This repository has been archived on 2026-01-20. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
AW_2025/Assets/Scripts/Manager/CoroutineManager.cs
2025-02-24 15:18:12 +09:00

61 lines
1.9 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.UI;
using Noah;
namespace Noah
{
public class CoroutineManager : Singleton<CoroutineManager>
{
static Dictionary<string, IEnumerator> _routines = new Dictionary<string, IEnumerator>(100);
public static Coroutine Start(IEnumerator routine) => Instance.StartCoroutine(routine);
public static Coroutine Start(IEnumerator routine, string id)
{
var coroutine = Instance.StartCoroutine(routine);
if (!_routines.ContainsKey(id)) _routines.Add(id, routine);
else
{
Instance.StopCoroutine(_routines[id]);
_routines[id] = routine;
}
return coroutine;
}
public static void Stop(IEnumerator routine) => Instance.StopCoroutine(routine);
public static void Stop(string id)
{
if (_routines.TryGetValue(id, out var routine))
{
Instance.StopCoroutine(routine);
_routines.Remove(id);
}
else Debug.LogWarning($"coroutine '{id}' not found");
}
public static void StopAll() => Instance.StopAllCoroutines();
public static IEnumerator TextureLoad(string _url, string goName)
{
string url = _url;
UnityWebRequest www = UnityWebRequestTexture.GetTexture(url);
yield return www.SendWebRequest();
if (www.result != UnityWebRequest.Result.Success)
{
Debug.Log(www.result);
}
else
{
//matching
RawImage rawimg = GameObject.Find
(goName).GetComponent<RawImage>();
rawimg.texture = (www.downloadHandler as DownloadHandlerTexture).texture;
}
}
}
}