返回从下载的数据生成的 Texture2D(只读)。
数据必须为 JPG 或 PNG 格式的图像。如果数据不是有效的图像,
则生成的纹理将是一个小的问号图像。
建议为图像的每个维度使用“2 的幂”大小;
可以使用任意大小,但使用其他大小时,加载可能会稍慢一些,
占用的内存也要稍多一些。每次调用纹理属性都会分配一个新的 Texture2D。如果您不断地下载纹理,
则必须为之前创建的纹理使用 LoadImageIntoTexture
或 Destroy。
对于 PNG 文件,如果文件中包含伽玛信息,
则向纹理应用伽玛校正。假设用于校正的伽马值为 2.0。如果文件不包含伽玛信息,
则不执行颜色校正。
JPG 文件加载为 RGB24 格式,
PNG 文件加载为 ARGB32 格式。若要对下载的图像进行 DXT 压缩,
请改为使用 LoadImageIntoTexture。
如果对象尚未下载完数据,将返回一个虚拟图像。
使用 isDone 或 yield 查看数据是否可用。
using UnityEngine; using System.Collections;
// Get the latest webcam shot from outside "Friday's" in Times Square public class ExampleClass : MonoBehaviour { public string url = "http://images.earthcam.com/ec_metros/ourcams/fridays.jpg";
IEnumerator Start() { // Start a download of the given URL WWW www = new WWW(url);
// Wait for download to complete yield return www;
// assign texture Renderer renderer = GetComponent<Renderer>(); renderer.material.mainTexture = www.texture; } }
Note: The WWW.texture property allocates a new Texture2D every time it is called. Therefore, it is important to always assign the result to a local variable so that it can later be freed using Destroy(). For example, the following code will cause a memory leak:
using UnityEngine; using System.Collections;
public class WWWError : MonoBehaviour { public string url = "http://images.earthcam.com/ec_metros/ourcams/fridays.jpg";
IEnumerator Start() { // Start a download with a given URL WWW www = new WWW(url);
// ... Make the request
if (www.texture != null) { // a new texture is created as the // test is made }
// ... use the n-th texture which was created
yield return null; } }
调用 www.texture 将分配一个新的纹理,
但由于没有对其的本地引用,该纹理永远不会被释放。
或者,也可以使用 WWW.LoadImageIntoTexture。