我怎么能够 ;将从.dll 中的Properties.Resources 读取的图像数据转换为Image 或texture2D 或sprite?

How can I ; convert image data read from Properties.Resources in a .dll to Image or texture2D or sprite?

首先,出于某种原因,我无法在我的 C# 脚本中使用 System.Drawing。我在 Unity3d 中工作,每次加载脚本时库引用都会被踢出。

我正在使用此方法访问我的 dll 的资源

//DaiM.Reality is the namespace 
// fgla is a class

            Assembly asm = typeof(DaiM.Reality.fgla).Assembly;
        string resourcename = asm.GetName().Name + ".Properties.Resources";
        ResourceManager rm = new ResourceManager(resourcename, asm);
        Texture2D imh = (Texture2D)rm.GetObject("flag"); // the problem
// error :: InvalidCastException: Cannot cast from source type to destination type.

如果我可以使用 System.Drawing 那么我可以只从位图中读取像素并将它们应用到新的 Texture2D。但统一不会让我使用 System.Drawing 。我猜那是因为System.Drawing库中的某些类和UnityEngine库冲突

1) System.Drawing 未包含在 Unity 的默认库中。您应该自己将 System.Drawing.dll 导入到您的项目中。更多信息:

http://answers.unity3d.com/questions/53170/using-drawing-package-like-systemdrawing.html

2) 您尝试导入的 DLL 应使用 Target Framework 选项进行编译,并将其设置为 Unity 可以理解的某个版本(当前为 2.0)。确保设置正确。

3) 看看这个 post 从 DLL 导入图像:

http://forum.unity3d.com/threads/resources-load-in-c-dll.62561/#post-403356

希望对您有所帮助。