【发布时间】:2014-12-20 14:40:16
【问题描述】:
我刚开始使用 Unity,但在最基本的操作方面遇到了问题 - 让图像出现在屏幕上。
我已经尝试对此进行研究,但几乎所有关于 Unity 的教程/信息都是关于更高级的用法,并未涵盖基础知识。关于基本图像加载和绘制的信息很少。
我的项目有一个对象,附有这个脚本:
public class Boxland_Main : MonoBehaviour
{
Texture2D test_sprite;
void Start ()
{
print ("STUFF"); // this works
test_sprite = (Texture2D) Resources.Load ("richard_green.png");
}
void Update ()
{
GUI.DrawTexture (new Rect(0, 0, 50, 50), test_sprite); // this doesn't work
}
}
我的图像文件位于 Resources 目录中,但我得到的只是粉蓝色屏幕。
编辑:
为了清楚起见,我会对任何仅在屏幕上显示图像的解决方案感兴趣。我觉得我离回归 XNA 或 GameMaker 越来越近了。
更新:
这是我现在得到的(仍然没有绘制精灵):
public class Boxland_Main : MonoBehaviour
{
public Texture2D test_sprite;
void Start ()
{
test_sprite = (Texture2D) Resources.Load ("richard_green");
}
void OnGui ()
{
if (test_sprite) GUI.DrawTexture (new Rect (0, 0, 50, 50), test_sprite);
}
}
更新:
我发现如果我直接从资产窗口将图像拖到 Unity UI 的场景窗口中,它会将精灵添加到视图中,并且精灵会在编译时显示。但是,它呈现模糊和像素化,并且似乎没有任何方法可以在 sprite 表上指定特定帧。
更新:
我在研究时发现了一些可能指向部分答案的材料:
Unity 4.3 - 2D, how to assign programmatically sprites to an object http://docs.unity3d.com/ScriptReference/Resources.Load.html
这似乎涵盖了加载图像,但从未解释如何绘制图像。
【问题讨论】:
-
“不起作用”不是一个好的描述 - 它是否存在错误,如果是,是哪一个?请注意,Resources 类只能加载位于 Resources 文件夹中的资源。
-
@LearnCocos2D:正如我在最后一行中所说,该文件位于资源文件夹中。没有错误,只是一个空白的蓝色背景。
-
从资源文件夹加载图像重要吗?如果这是您在统一中尝试做的最基本的事情,那么您的想法仍然不够基本
-
@ryanscottmurphy:我在研究时能够挖掘出的几个示例和提示似乎表明图像文件需要位于该文件夹中,否则它们将无法加载。
标签: c# unity3d sprite texture2d