对于unity3d 2d游戏开发来说,如此的代码虽然实现了我们要的功能,但却不干净,原因在于“请输入关键字”这样的文本仅仅是提示文字而已,而不是value,虽然技术上没有大问题,但很多时候还是显得麻烦,比如说我们可能像让提示文字显示的颜色是灰色,而用户键入的文本则显示黑色。
下面看看如何实现更好的方式:
前言:前段时间一直都好忙也就好久没有写些东西了,最近手上的事刚好告些段落了,把以前空写的写插件都拿出来分享下吧,希望对大家有些帮助,也希望有高手能帮忙指点下我的写不足和错误,一直以来自己写的东西都是在用,性能方面个人只能尽量靠近问题还很多……真心求指点;插件简介:执行渐隐等动画效果,可以这个插件为一个附加插件 可以配合前面我发的一个弹出层 等等之类的东西用增加js展示的趣味性
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
更多有关unity3d 2d游戏的知识可以查询天地会。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。