您好,欢迎来到刀刀网。
搜索
您的当前位置:首页Unity3D教程:2D显示

Unity3D教程:2D显示

来源:刀刀网
Unity3D教程:2D显示

Posted on 2013年01月10日 by U3d / Unity3D脚本/插件/被围观 302 次

先前在绘制2D元素的时候用的是GUI的DrawTexture()。用法很简单,类似这样:

var tex : Texture;

DrawTexture( Rect( left, top, width, height ), tex );

在屏幕的Rect位置绘制tex。但是官方文档在Graphics的DrawTexture()函数介绍中又这么一句话:It's probably better to use GUI.DrawTexture for GUI code.

这么说来Graphics更适合于绘制2D元素,而且,更适合于动画,一张纹理上多帧元素。这个函数不是很容易用,参数较多而且有点怪异,但是用了之后会觉得十分的合理。这个方法有4个重载,只讲最复杂的一个。其他的简单的一B了。

static function DrawTexture (screenRect : Rect, texture : Texture, sourceRect : Rect, leftBorder : int, rightBorder : int, topBorder : int, bottomBorder : int, color : Color, mat : Material = null) : void

screenRect:这个参数就是在屏幕的以像素为单位。left,top为起始点,创建一个大小width,height的矩形。Rect( left, top, width, height );

sourceRect:就是纹理对象。

sourceRect:在纹理上取一个矩形,缩放后放到screenRect内,所以通常这两个大小一定要一样,如果要缩放仅缩放screenRect就行了。但是有2个重要的是,第一、这个矩形的单位是相对大小,跟uv一样,是百分比的,大小在 0-1 之内。第二、起始点为left,button。也就是说以左下角为起始点。

border:后面4个border以像素为单位,缩放值,暂且不管,全给0,也就是原始大小。

color:颜色,类型为 Color,RGBA格式,0-1(0/255.0 - 255/255.0),默认为 Color( 0.5, 0.5, 0.5, 0.5 );

mat : 材质,暂时不管。

此代码不能放在任意位置,也就说必须有约束条件。

you should only do that from EventType.Repaint events

就是说触发了Repaint消息,此函数才能执行,而这个消息必须在OnGUI() 内执行。像这样:

var tex : Texture;

function OnGUI()

{

if( Event.current.type.Equals(EventType.Repaint) )

Graphics.DrawTexture(......); }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务