WWW类过时提示使用 UnityWebRequest

学习笔记
其中包括

加载音频
加载图片
加载AssetBundle
加载文本文件

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Networking;
using System;

public class GetPost : MonoBehaviour
{
    
    private string mMusicURL;
    private string mMusicWebURL;
    private string mImageURL;
    private string mImageWebURL;
    private string mAssetBundleURL;
    private string mAssetBundleWebURL;
    private string mFileURL;
    private string mFileWebURL;
    void Start()
    {
        mMusicURL = Application.dataPath + "/少年.ogg";
        mMusicWebURL = "http://localhost/少年.ogg";
       // mMusicWebURL = "https://mp32.9ku.com/upload/128/2019/05/23/892204.mp3";

        mImageURL = Application.dataPath + "/Texture/003.png";
        mImageWebURL = "http://localhost/003.png";

        mAssetBundleURL = Application.dataPath + "/AB/player.ab";
        mAssetBundleWebURL = "http://localhost/AB/player.ab";

        mFileURL = Application.dataPath + "mSerializableSerializableAndDeserialize.txt";
        mFileWebURL = "http://localhost/readme.txt";
        // 测试脚本是否能够加载
        mFileURL = Application.dataPath + "/Code/LoadAB.cs";

     
        Debug.Log(mFileWebURL);
     // StartCoroutine( loadMusic(mMusicURL));
      StartCoroutine( loadMusic(mMusicWebURL));
      StartCoroutine(loadTexture(mImageWebURL));
      StartCoroutine(loadAssetBundle(mAssetBundleWebURL));
      StartCoroutine(loadFile(mFileURL));
    }
    IEnumerator  loadMusic(string URL)
    {
        UnityWebRequest request = UnityWebRequestMultimedia.GetAudioClip(URL, AudioType.OGGVORBIS);
        AsyncOperation async = request.SendWebRequest();
        while (!request.isDone)
        {
            Debug.Log("Music "+ async.progress);// 下载进度
            yield return null;
        }

        if (request.isNetworkError || request.isHttpError)
        {
            Debug.LogError(request.error);
        }
        else
        {
            AudioClip clip = DownloadHandlerAudioClip.GetContent(request);
            AudioSource source = gameObject.AddComponent<AudioSource>();
            source.clip = clip;
            source.Play();
        }
    }
    IEnumerator loadTexture(string URL)
    {
        UnityWebRequest request = UnityWebRequestTexture.GetTexture(URL);
        AsyncOperation async = request.SendWebRequest();
        while (!request.isDone)
        {
            Debug.Log("Texture  "+ async.progress);
            yield return null;
        }
        if (request.isNetworkError || request.isHttpError)
        {
            Debug.LogError(request.error);
        }
        else {
            Texture2D texture = DownloadHandlerTexture.GetContent(request);
            Sprite sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0, 0));
            SpriteRenderer renderer= gameObject.AddComponent<SpriteRenderer>();
            renderer.sprite = sprite;
        }
    }
    IEnumerator loadAssetBundle(string URL)
    {
        UnityWebRequest request = UnityWebRequestAssetBundle.GetAssetBundle(URL);
        AsyncOperation async= request.SendWebRequest();
        while (!request.isDone)
        {
            Debug.Log("AssetBundle  " + async.progress);
            yield return null;
        }

        if (request.isNetworkError || request.isHttpError)
        {
            Debug.LogError(request.error);
        }
        else
        {
           AssetBundle  assetBundle = DownloadHandlerAssetBundle.GetContent(request);
            UnityEngine.Object cube = assetBundle.LoadAsset("Cube.prefab");
            Instantiate(cube);
        }
    }
    IEnumerator loadFile(string URL)
    {
        UnityWebRequest request = UnityWebRequest.Get(URL);

        AsyncOperation async = request.SendWebRequest();

        while (!request.isDone)
        {
            Debug.Log("File  " + async.progress);
            yield return null;
        }

        if (request.isNetworkError || request.isHttpError)
        {
            Debug.LogError(request.error);
        }
        else
        {
            Debug.Log(request.downloadHandler.text);
        }
    }

}

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值