纳金网
标题:
2D纹理和Movie纹理 (转载)
[打印本页]
作者:
刀锋狼
时间:
2014-7-23 00:32
标题:
2D纹理和Movie纹理 (转载)
使用GUI的方式来显示纹理。在《Unity权威指南》中,脚本使用的是JS脚本。现在这篇文章中主要是给出C#的脚本。
下面是代码:
using UnityEngine;
public class showTexture : MonoBehaviour {
private Texture2D oneTexture;
private
Texture2D[]
allTexture;
//这里可以写成和书上一样的Obeject[],但是要在后面的GUI.DrwaTexture方法中使用强制转换
void OnGUI()
{
//和JS代码不同,这里需要new一个Rect对象
if (GUI.Button(
new
Rect(0,20,100,60),"loadOneTexture"))
{
if (oneTexture == null)
{
oneTexture = Resources.Load("oneTexture/Grass") as Texture2D;
}
}
if (GUI.Button(
new
Rect(0, 140, 100, 60), "loadAllTexture"))
{
if (allTexture == null)
{
//这里需要这是泛型为Texture2D
allTexture = Resources.LoadAll<Texture2D>("allTexture"); //如果上面定义的是Object[]则不需要使用泛型
}
}
if (oneTexture != null)
{
GUI.DrawTexture(
new
Rect(110, 20, 120, 120), oneTexture, ScaleMode.StretchToFill, true, 0);
}
if (allTexture != null)
{
for (int i = 0; i < allTexture.Length; i++)
{
GUI.DrawTexture(
new
Rect(110 + i * 120, 140, 120, 120),
allTexture
, ScaleMode.StretchToFill, true, 0);
//如果上面定义的是Object[]在这里要进行强制转换成Texture2D
}
}
}
}
以上代码中,用红笔标出的地方就是C#脚本和JS脚本所不同的地方。
总结:
1、第5行代码,需要声明一个类型为Texture2D的数组allTexture。这里和JS脚本不同的地方是JS脚本中用的是Object数组。
2、第8、15、24、30中都需要使用new关键字实例化一个Rect(矩形)。JS脚本中则不需要new。
3、第19行代码,需要使用LoadAll<T>()方法,在尖括号中指定泛型的类型为Texture2D。
4、第12行代码,需要使用as Texture2D来把加载到得数据执行转换成Texture2D。
5、在上面的代码中,关键的方法主要有三个。这里要先说明一下Resource类,Resource类允许我们去发现和获取一个包含资源中的对象。
第一个方法Resource.Load(string path),用于加载一个存储在Resource文件路径下的资源。参数为目标文件的路径名。
第二个方法Resource.LoadAll<T>(string path),用于加载所有储存在Resource文件路径下的资源或文件。参数同样为目标文件的路径名。
第三个方法GUI.DrawTexture(Rect positon, Texture image, ScaleMode scaleMode, bool alphaBlend, float imageAspect),用于在一个矩形的范围内绘制一个纹理。第一个参数用于设置一个矩形的x坐标,y坐标,宽,高。第二个参数用于设置一个纹理去展示。第三个参数用于怎么去按比例排列(缩放)这个纹理当它的宽高比不能够适应这个绘制的范围时。第四个参数是布尔类型,表示是否应用alpha blending(α混合 我也不知道这样子翻译准不准确,这个是一种让3D物件产生透明感的技术)来绘制这个图片。第五个参数表示图片的宽高比,0是默认值,表示使用图片的宽高比。
6、还有一个方法GUI.Button(Rect positon,string text)。该方法用于产生一个按钮,单击它会立即发生一些事件。第一个参数和GUI.DrawTexture的第一个参数表示的相同,第二个参数表示的是显示在按钮上的文字。这个方法还有另外4中重载,具体的内容需要参考官方的文档。
7、
最有一点要注意的就是,我们要显示的纹理需要放到指定的Resource文件夹中。
作者:
shotdead
时间:
2014-7-23 02:05
谢谢分享! C#
作者:
HIDEOKOJIMA
时间:
2014-7-23 09:56
谢谢分享!
作者:
hyui
时间:
2014-7-23 16:00
谢谢分享!
作者:
wusky751023
时间:
2014-7-23 16:25
感謝刀鋒狼大人教學
作者:
wucnj
时间:
2014-7-23 16:38
感谢分享!!!
作者:
我不再年轻
时间:
2014-7-25 22:15
学习了, 多谢俄
作者:
shenyg77
时间:
2014-7-25 23:06
感谢分享
欢迎光临 纳金网 (http://go.narkii.com/club/)
Powered by Discuz! X2.5