private Image image;
private string loadPath = "Assets/StreamingAssets" + "/Desert.png";
string picPathwww = "Desert.png";
void Start()
{
image = this.GetComponent<Image>();
LoadByIO();
// LoadByWWW();
}
private void LoadByIO()
{
double startTime = (double)Time.time;
using (FileStream fileStream = new FileStream(loadPath, FileMode.Open, FileAccess.Read))
{
fileStream.Seek(0, SeekOrigin.Begin);
byte[] bytes = new byte[fileStream.Length];
fileStream.Read(bytes, 0, (int)fileStream.Length);
int width = 300;
int height = 372;
Texture2D texture = new Texture2D(width, height);
texture.LoadImage(bytes);
Sprite sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f));
image.sprite = sprite;
startTime = (double)Time.time - startTime;
Debug.Log("IO加载用时:" + startTime);
}
}
private void LoadByWWW()
{
StartCoroutine(Load());
}
IEnumerator Load()
{
double startTime = (double)Time.time;
WWW www = new WWW("file://" + Application.streamingAssetsPath + "/Desert.png");
yield return www;
if (www != null && string.IsNullOrEmpty(www.error))
{
Texture2D texture = www.texture;
Sprite sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f));
image.sprite = sprite;
startTime = (double)Time.time - startTime;
Debug.Log("wwww加载用时:" + startTime);
}
}
结果比较 传统的IO读取方式比较快。
Unity中文件流和WWW的方式加载图片
最新推荐文章于 2024-06-27 18:27:32 发布