首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Unity:如何将UI图片拉伸到画布的相对大小而不过度拉伸?

在Unity中,可以通过使用9宫格技术来将UI图片拉伸到画布的相对大小而不过度拉伸。9宫格是一种将图片分为9个部分的技术,其中四个角不会被拉伸,四个边会按比例拉伸,而中间的部分会平铺填充。

要实现这个效果,可以按照以下步骤进行操作:

  1. 将图片导入到Unity项目中,并将其设置为UI Image组件的Sprite属性。
  2. 在Inspector面板中,将Image组件的Image Type属性设置为"Simple"。
  3. 在Image组件的Inspector面板中,点击"Set Native Size"按钮,使图片显示为原始大小。
  4. 在Image组件的Inspector面板中,点击"Generate Sprite"按钮,生成一个新的Sprite。
  5. 在Sprite Editor中,将图片分割为9个部分,确保四个角不会被拉伸,四个边会按比例拉伸,而中间的部分会平铺填充。
  6. 在Image组件的Inspector面板中,将Image Type属性设置为"Sliced"。
  7. 调整Image组件的RectTransform组件,使其适应画布的相对大小。

通过以上步骤,可以将UI图片拉伸到画布的相对大小而不过度拉伸。这种技术通常用于创建可伸缩的UI元素,如按钮、面板等。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

unity3d-UGUI

内容 UGUI暂时没有Tween组件 基础控件 Canavas(画布) 简介 画布,绘制UI元素载体,所有元素必须在Canavas之下。...属性 Render Mode(渲染方式) Screen Space-Overlay覆盖模式:UI元素将绘制在其他元素之前,且绘制过程独立于场景元素和摄像机设置,画布尺寸由屏幕大小和分辨率决定。...UI Scale Mode(UI缩放模式) Constant Pixel Size:像素大小始终不变,即一个100100图片在任何分辨率下都占用100100像素。...Scale With Screen Size:不关心图片实际像素大小只关心Width及Height值,这个值如果是1000,那么100高度图片在任何分辨率下都只占用屏幕1/10尺寸(一般移动端会使用这种方式...Anchor锚点:UI元素四个顶点与锚点间距保持不变。锚点总是相对于父级,不能超越父物体范围。

2.9K30

UnityNGUI使用

NGUI 做UI框架,第三方插件 基础组件简介 1.Widget相当于unity空物体 2.Anchor锚点(用于做UI自适应) 3.Panel画布 4.ScrollView可滑动区域...字体制作器 UI Root UIRoot用于缩放UI ScalingStyle缩放模式:来进行UI大小自适应Flexible大小不变,Constrained进行大小自适应,ConstrainedOnMobiles...使用自适应可以在不同分辨率下,UI相对大小保持不变. UICamera用于事件监测 让带有这个组件摄像机渲染出来物体能够接受NGUI事件 EventMask:事件层遮罩。...:在有背景框需要拉伸时候选择Sliced,Tiled将以原图片大小填满整个Sprite,Filed可以实现技能冷却 2.Filp:来实现反转 3.Widget:中心点,Depth深度值越大能覆盖后面的...,Size图片大小,Aspect宽高比例. 4.Anchors:锚点选择Unified,如果我们UI在某一个遍或者角,我们锚点不能设置4个方向,在中间将锚点设置为中间 5.depth:深度值不能相同

2.1K10
  • UI图片纹理压缩问题

    因为Unity显示是Texture大小,是实际运行时占用内存大小png却是一种压缩显示格式;可以这样理解,png类似于zip格式,是一个压缩文件,只不过在运行时会自动解压解析罢了。...;缺点,Unity原生不支持Dithering抖动,需要自己做工具对图片做处理;对于需要放大、拉伸图片,Dithering抖动支持不好,会有非常明显颗粒感。...image RGB16,是主要针对一些,不带透明通道,同时长宽又不是2次方图片;对于这些图片,使用RGB16可以降低一半内存,但是效果会略逊于RGB32。   ...、卡牌、不会进行拉伸放大 RGBA16 1/2 ★★★ 有 无需 UI、头像、卡牌,不带渐变,颜色丰富,需要拉伸放大 RGB16+Dithering 1/2 ★★★★ 无 无需 UI、头像、卡牌、不透明...、不会进行拉伸放大 RGB16 1/2 ★★★ 无 无需 UI、头像、卡牌、不透明、渐变,不会进行拉伸放大 RGB(ETC1) + Alpha(ETC1) 1/4 ★★★ 有 需要二次方,长宽可不一样

    1.6K30

    Unity-BattleStar丨5. 给BattleStar游戏添加UI

    准备工作:图片资源下载 1、创建PanelUI,重命名Menu,并将Canvas重命名MainMenu 根据上篇文章内容,Meun锚点要在Canvas中心,这样缩放屏幕时会保持相对位置不变...,第二张图为设置好效果: a.当UIScaleMode为Constant Pixel Size时,UI在任何分辨率下都不会进行缩放拉伸,只有通过改变Scale Factor才会进行缩,因此推荐使用该模式...unity自适应算法,此时unity会根据屏幕分辨率自动调节Scale Factor值。...它意思是在任何屏幕上不改变 Canvas DPI(是一个量度单位,用于点阵数码影像,指每一英寸长度中,取样、可显示或输出点数目),而是调节 Canvas 物理大小总是与屏幕保持一致。...3、将要使用UI图片设置为Sprite(2D and UI) 4、将图片“MainPanel_BackGround”拖入Menu-Source Image 5、在Meun下创建名为“List”Image

    11810

    国民游戏王者荣耀真实地图开发之路

    如果是 SurfaceView,基于 OPenGl 渲染 3D 地图 sdk 就成了可选方案,但需要解决如何将 Unity 和 Native 两层渲染打通,这里会涉及到大量改动以及接口封装,考虑到方案调研和研发时间成本以及包大小控制...框架大致如上,如何将这一整套框架运转起来呢——数据驱动。...4.4 Android 点9图功能支持 这个课题很有意思,如何将一张普通图片以点 9 形式提供拉伸、缩放能力? Unity 里提供了大量类似使用方式,只提供普通图和拉伸点,来实现拉伸效果。...通过以上代码达到效果如下: 如图所示,点9图是我们目标效果,直接拉伸会造成图片虚缈,不符合要求。通过以上开源代码得到效果周边似乎少了一圈,虽然看上去没有任何拉伸变虚问题,但也不符合要求。...这里我提一个问题:以上方案解决了图片拉伸问题,那如果该图片需要做压缩,该如何处理呢?

    1.1K71

    仿uc下部弹出菜单

    ,组长叫我和他考虑界面实现可行性,我提出这种思路给他,他采纳,觉得太烦了,他就自己弄,因为我们项目是车载导航上一个主控程序上菜单,屏幕分辨率固定,所以用5张图片就ok了,所以到最后这个都不了了之了...发现没,UC菜单箭头绝对是对准所点击按钮,有人可能觉得用不同图片就行了,对于一种机型可以这么做,android机型千千万,你要怎么配型,这是个很大工作量,吃力讨好啊。...如图所示,可以把菜单背景分成3部分,这样用上面的3张.9图片根据不同大小进行拉伸组合就能得到想要效果了。...Drawable后怎么把它拉伸到需要大小并转化为bitmap呢,我查了资料(百度,google),自己总结使用了下面的一个方法,也可以看 dyh7077063博客 :http://dyh7077063....9图,所以拉伸图片不会失真,把drawable设置一个left、top点开始一个paramRect.right宽                 //paramRect.bottom高矩形区域,按我理解就是弄了这个区域

    1.5K80

    详解LayaAir引擎游戏屏幕适配,及有效抗锯齿

    这就是因为画布宽高达到物理分辨率才是真高清,拉伸会变模糊,比例不是相差太大图片还好些,尤其是文字更为明显。...由于在这个模式下,舞台宽高已经被缩放满全屏,所以。开发者完全可以通过相对布局属性(top和bottom),把背景拉到全屏以及按钮拉到屏幕相对位置显示。实现各个屏幕下都做到完美的全屏适配。...而且由于改变了画布大小,在物理分辨率差异比较大屏幕上,也不会因为设计分辨率小了导致模糊,仍然是高清。...[(图13-2)] 虽然说该模式,通过相对布局二次适配,也可以让被裁剪按钮等回归到屏幕内容之中,但二次适配方式要更加复杂。所以推荐使用该模式。...3.4.2 相对布局 LayaAirIDEUI组件中提供了基于父容器相对布局属性,如top、bottom、left、right。我们可以把需要特别处理按钮都统一放到一个容器组件中,例如box。

    7.3K163

    有效解决3D游戏边缘锯齿现象及全面理解LayaAir引擎游戏屏幕适配!

    无论大还是小,要想全屏适配不被裁切,那就需要拉伸缩放,都会导致锯齿感加剧,使得抗锯齿功能也无法完全抵消。 所以,要解决这个问题,那我们就要让游戏画布一直处于物理分辨率大小。...因为不使用视网膜画布模式,还想避免锯齿现象,移动端只能使用full模式,full模式除了让画布和舞台采用了物理分辨率之外,并没有作任何适配,所以对于2D UI,全部需要开发者手工适配。...由于在这个模式下,舞台宽高已经被缩放满全屏,所以。开发者完全可以通过相对布局属性(top和bottom),把背景拉到全屏以及按钮拉到屏幕相对位置显示。实现各个屏幕下都做到完美的全屏适配。...而且由于改变了画布大小,在物理分辨率差异比较大屏幕上,也不会因为设计分辨率小了导致模糊,仍然是高清。...3.4.2 相对布局 LayaAirIDEUI组件中提供了基于父容器相对布局属性,如top、bottom、left、right。我们可以把需要特别处理按钮都统一放到一个容器组件中,例如box。

    2.4K10

    Unity基础(24)-UGUI

    Set Native Size:点击此按钮则 Image 组件长宽自动与原图片长宽一致 Image Type(图片显示类型): Simple(基本):图片整张全显示,裁切,叠加,根据边框大小会有拉伸...模式后,根据图片边框拉伸图片四个角会保持原状,1和4部分会随着图片横向拉伸拉伸,2和3部分会随着图片纵向拉伸拉伸图片中间部分会拉伸5进行填充。...Tiled(平铺):若图片已经过裁切,则使用Tiled模式后,根据图片边框拉伸图片四个角会保持原状,1和4部分会随着图片横向拉伸拉伸,2和3部分会随着图片纵向拉伸拉伸图片中间部分会用...若图片未裁切,则使用Tiled模式后,根据图片边框拉伸图片保持原大小不做变化,只是用自身平铺填充。...1024*568,该项设置成4096,unity也只会使用它原尺寸大小,改值大小大于等于图片原尺寸,如果小于该纹理质量会有损失 5.Format 格式设置 Compressed 压缩格式,如果纹理没有透明通道

    4.4K20

    html背景图片拉伸解决办法

    大家好,又见面了,我是你们朋友全栈君。...html背景图片拉伸解决办法 body { background-size: 100% 100%; //关键代码,直接拉伸背景图 background-image...background-attachment: fixed;//此代码用于页面内容超出屏幕,右侧出现滚动条情况,使得滚动滚动条时背景锁定 } 需要注意是: background-size...: 100% 100%; //关键代码,直接拉伸背景图 如果你页面内容超过一页,那么背景拉伸很长不好看,建议使用 background-attachment: fixed; 作用是图片拉伸到当前一页屏幕大小...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    1.6K10

    hash哈希竞猜游戏模式系统开发技术源码丨hash哈希游戏开发逻辑程序方案

    Image怎么绘制   Unity中渲染物体都是由网格(Mesh)构成网格绘制单元是图元(点、线、三角面)   绘制信息都存储在Vertexhelper类中,除了顶点外,还包括法线、UV、颜色...Rebuild概念   Canvas负责将子节点UI元素网格合并,并生成相应渲染指令再发送到Unity图形管道过程。...,材质变化(大小,旋转以及文字变化、图片修改)   优化   主要目标,把Profile里Canvas.SendWillRenderCanv参数调小。...①Simple 4个顶点;   ②Sliced勾选FillCenter顶点数是36个,勾选是32个;   ③Tiled取决于Rectranform设置大小和原图大小,铺开了N张图就是4*N个;   ...:设置最大文本大小   public TextAnchor alignment:文本相对其RectTransform定位。

    1.8K20

    Unity3d:UGUI源码,Rebuild优化

    Image怎么绘制 Unity中渲染物体都是由网格(Mesh)构成网格绘制单元是图元(点、线、三角面) 绘制信息都存储在Vertexhelper类中,除了顶点外,还包括法线、UV、颜色、...Rebuild概念 Canvas负责将子节点UI元素网格合并,并生成相应渲染指令再发送到Unity图形管道过程。...材质变化(大小,旋转以及文字变化、图片修改) 优化 主要目标,把Profile里Canvas.SendWillRenderCanv参数调小。...①Simple 4 个顶点; ②Sliced 勾选FillCenter顶点数是 36 个,勾选是 32 个; ③Tiled 取决于Rectranform 设置大小和原图大小,铺开了 N 张图就是...TextAnchor alignment:文本相对其 RectTransform 定位。

    66130

    Unity3D之UGUI基础--画布三种模式

    :电脑或者手机显示屏2D空间,只有x轴和y轴 覆盖模式:UI元素永远在3D元素前面 几个相关属性: Pixel Perfect:勾选后UI和屏幕像素对应,UI图片不会出现锯齿边缘 Sort Order...Unity为我们提供了Canvas Scaler组件用于控制画布UI元素统一缩放和像素密度。缩放值影响Canvas上所有的元素,包括字体size和imageborders。...(UI当中一单元对应多少设计分辨率像素,最好跟图片设置一致,否则Image显示会与画布匹配) Constant Physical Size: 通过调节 Canvas 物理大小来维持缩放不变。...这种说法可能比 Constant Pixel Size 更难以理解,实际上他们本质是一样,只不过 Constant Pixel Size 通过逻辑像素大小调节来维持缩放, Constant Physical...这种模式从设计意图来看,是为了在开发时使用物理单位而非像素单位,这只会让程序和美术工作变得复杂,实际使用价值并不高。因为开发人员更关心设计像素分辨率,他们需要绘制明确像素大小图片

    1.3K50

    零基础入门 8: Canvas和EventSystem

    Unity在之前版本更新中,继GUI之后,又新生一套新UI系统,即UGUI。 UGUI是新版Unity自带原生UI系统,组件也在不断增加扩展,基本贴图,文本,按钮等还是可以用。...---- Canvas:画布 所以UI对象,包括按钮,贴图等都是Canvas下子对象,都将统一绘制到Canvas画布上。进行展示和使用。 如下图,创建一个空场景,然后随便创建一个图片 ?...可以看到,当我们在空场景里创建一个image时候,编辑器会自动创建一个Canvas,一个EventSystem以及创建图片,所以创建UI对象都是Canvas下子项。...第一种overlay渲染模式,会把所有UI都渲染在摄像机之前,不受摄像机影响,并且随着分辨率改变自适应UI布局。...第二个Canvas Scaler UI Scale Mode,UI缩放模式有三种 第一种Constant Pixel Size:按照像素大小进行缩放,像素比例则是按照下图里数值进行设置。 ?

    1.6K30

    【Android 性能优化】布局渲染优化 ( 过渡绘制 | 背景设置产生过度绘制 | Android 系统渲染优化 | 自定义布局渲染优化 )

    GPU 进行渲染 , 从而减少了 CPU 向 GPU 传递数据大小 ; 之前讲到过 , CPU 向 GPU 传递数据也是一个非常耗时操作 , 因此该优化 , 也降低了组件渲染时间 ; 透明组件摆放处理...: CPU 传递这些组件到 GPU 中 , 但是在布局中仍然正常摆放 ; 2....自定义组件过度绘制问题描述 : 自定义控件 , 在自定义 onDraw 方法中 , 绘制多张图片 , 如果图片之间产生重叠 , 重叠绘制部分就出现了过度绘制 ; 2....实现上述图片 A 在 Canvas 画布上绘制部分图片方式 : ① 完整画布 : onDraw 函数中 Canvas canvas 参数是完整画布 ; ② 取出图片 A 绘制部分 Canvas...(); // 剪切画布 canvas.clipRect(left, top, right, bottom); ③ 在剪切后画布中绘制图片 A : 在剪切后画布中 , 绘制图片 A , 注意绘制完成后

    4.6K30

    Unity性能调优手册8UI:Canvas,Layout,RaycastTarget,Mask,TextMeshPro,UI显示

    变化是任何变化,如主动切换、移动或调整大小,从外观大变化到第一眼看不出来小变化。重建过程成本很高,所以如果执行太多次,或者Canvas中ui数量很大,性能就会受到不利影响。...相反,重构成本可以通过将Canvas除以某种程度UI内聚来降低。例如,如果您有动画ui和不动画ui,您可以通过将它们放在单独控件下来最小化动画重建 画布。...但是,您需要仔细考虑如何拆分它们,因为拆分画布将不适用于绘制批次。 Tips 当画布嵌套在画布下时,拆分画布也有效。如果子画布中包含元素发生变化,则只会运行子画布重建,不会运行父画布。...然而,仔细观察,当子画布UI被SetActive切换到活动状态时,情况似乎是不同。在这种情况下,如果在父Canvas中放置了大量ui,似乎就会出现导致高负载现象。...此外,如果需要将需求放置在相对于父元素特定位置,即使父元素大小发生了变化,也可以通过调整RectTransform锚点来实现。

    66631

    Unity-Optimizing Unity UI(UGUI优化)03 Fill-rate,Canvas and Input

    UI基本组成 设计者创建UI通过给标准背景和元素进行组合和分层来创建最终UI。这是相对简单,对迭代是友好,但是由于Unity UI使用透明渲染队列,这种是建议使用方式。...但是这种操作将增大项目图集大小。 一个实例情况:在我们创建一个商店UI时候,一个物品可能有比边框、背景和一些小图片来定义价格,名称和一些其他信息。...这些都取决于图标的大小、数量和可接受填充率。 这里有一些合并UI元素缺点,特定元素不能再次被使用,需要创建额外美术资源。...这里改变包括UI 对象表现,精灵图片渲染,transform位置和大小,文本网格文本。 子物体顺序 Unity UI构建是从后向前,与对象在hierarchy中顺序是一样。...如果可以在导致排序或光线投射检测问题情况下启用它,则应该使用它来降低光线投射层次结构遍历成本。

    2.5K30

    组合与自绘,我该选用何种方式自定义Widget?

    下图是AppStore升级项UI示意图,图里每一项,都有应用Icon、名称、更新日期、更新简介、应用版本、应用大小以及更新/打开按钮。...可以看到,这里UI元素还是相对较多,现在我们希望将升级项UI封装成一个单独控件,节省使用成本,以及后续维护成本。 ?...在Flutter中,画布是Canvas,画笔则是Paint,画成什么样子,则由定义了绘制逻辑CustomPainter来控制。...不过,当视觉效果需要调整时,采用自绘方案可能需要大量修改绘制代码,组合方案则相对简单:只要布局拆分设计合理,可以通过更换子Widget类型来轻松搞定。...无论是组合还是自绘,在自定义UI时,有了目标视图整体印象后,我们首先需要考虑事情是如何将它化繁为简,把视觉元素拆解细分,变成自己立即可以着手去实现一个小控件,然后再思考如何将这些小控件串联起来。

    1.8K20

    Unity-Optimizing Unity UI(UGUI优化)04 UI Controls

    这一章节专门针对UI Controls进行优化。大部分UI Controls都对性能表现有一定影响。 UI Text(UI文本) Unity内置Text组件可以在UI显示格栅化文本。...从性能分析来看,重要是理解Unity UI为每个不同大小、风格和字符维护一个字形在字体图集中。...将TextMeshProUGUI组件中文本变动最小化并且将其发生变化组件放置到专门画布上,使画布重建效率达到最高。...这将减少批处理UI元素数量,批处理成本仅随着画布CanvasRenderer数量增加,不是随Rect Transforms数量增加。...但是要避免全部重新计算,要实现一个与位置改变相关联对象池,不是与重置父节点或改变同级顺序相关对象池。 基于位置滚动框对象池 为了避免上述问题,直接通过改变UI元素位置。

    3.5K20

    .9图片那点事儿

    核心要点:左上拉伸,右下内容 使用系统自带draw9patch工具制作9图 采用NinePatch图片做背景,可使背景随着内容拉伸(缩小)拉伸(缩小)。...那么如何将普通PNG图片编辑为NinePatch图片呢, Android SDK/tools目录下提供了编辑器draw9patch.bat,双击即可打开。...在画布上方和左方边上画线指定缩放区域,勾选“Show patches”可显示画定区域,绿色为固定大小区域,红色为缩放区域,文字会摆放在红色区域。...Zoom: 用来缩放左边编辑区域大小 Patch scale: 用来缩放右边预览区域大小 Show lock: 当鼠标在图片区域时候显示不可编辑区域 Show patches: 在编辑区域显示图片拉伸区域...如果完全消除该内容则图片拉伸后是没有变形,也就是说,不管如何缩放图片显示都是良 好

    1.2K20
    领券