这个作业属于哪个课程 | 软件工程实践2022年春-F班 |
---|---|
这个作业要求在哪里 | 软件工程实践总结&个人技术博客 |
这个作业的目标 | 实践总结&个人技术博客 |
其他参考文献 | 《构建之法》 |
技术概述
在Unity中需要使用图片等其他不在Unity内的资源时可以使用Application.streamingAssetsPath
获取Assete目录下StreamingAssets目录内的文件进行使用。
技术详述
在设置桌宠托盘图标时,需要获取外部图片文件作为图标,由于网络获取图片具有不稳定性,所以将图片打包在unity生成文件中,在使用前,需要先在Assete目录下创建StreamingAssets目录,之后将需要的文件拖入
代码如下,在StreamingAssets目录中有icon.png
作为托盘图标
_notifyIcon.Icon = CustomTrayIcon(@UnityEngine.Application.streamingAssetsPath + "/icon.png", _width, _height);
private static Icon CustomTrayIcon(string iconPath, int width, int height)
{
Bitmap bt = new Bitmap(iconPath);
Bitmap fitSizeBt = new Bitmap(bt, width, height);
return Icon.FromHandle(fitSizeBt.GetHicon());
}
这样,因为Unity生成可执行文件时会将其自动进去,所以在exe运行时也有预期效果。
技术使用中遇到的问题和解决过程。
如果在代码中using了其他带有Application
的类就会导致二义性错误(比如C#的Form类),这时候就需要指明空间,需要在前面加上@UnityEngine.
才会成功。
总结
使用@UnityEngine.Application.streamingAssetsPath可以方便快速的使用不属于Unity的资源
参考博客
unity Application 本地目录资源路径详解 Application.StreamingAssetsPath、Application.PersistentDataPath等