问题
最近想写一个能够从resources里复制资源到设备端的协程。
IEnumerator CopyFileToAndroid(string path)
{
WWW www = new WWW(Application.streamingAssetsPath + "/" + path);
yield return www;
if (www.error == null)
{
FileInfo fi = new FileInfo(Application.persistentDataPath + "/" + path);
if (!fi.Exists)
{
FileStream fs = fi.OpenWrite();
fs.Write(www.bytes, 0, www.bytes.Length);
fs.Flush();
fs.Close();
fs.Dispose();
Debug.Log("下载图片和视频成功!" + "\n");
}
}
else
{
Debug.Log("下载图片和视频失败,需要手动导入");
}
}
最开始把这个协程定义在了Awake()里,并在定义之后就StartCorotine,然后在unity里出现了神奇的错误,如下。
现象:在vs中没有报错,但是在unity中一旦点击编译就开始报语法错误
疑惑
尝试把协程的定义写到MonoBehaviour里面,在Awake的外面,发现不会报错了。看到网上有其他朋友提到Awake中不能执行协程的,但是目前是在Awake中定义&&使用是会报错,但是在Awake外定义&&Awake中使用是可以的。 记录一下疑惑,等日后厘清了再来补充自己的问题。
|