You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity中通过2D Objects-Sprite添加的精灵如何实现无损拉伸?

解决2D Sprite的九宫格无损拉伸问题

问题背景

你已为Sprite设置边界(九宫格切片),想要实现拉伸时仅变形中间区域、保留边框比例的效果:通过「UI-Image」创建的对象借助Image组件能正常实现,但通过「2D Objects-Sprite」创建的对象用Sprite Renderer直接拉伸会导致整体变形,添加Image组件后又完全不显示。

当前实际效果:Sprite整体被拉伸,边框变形
Sprite设置:已完成九宫格边界参数配置
预期效果:仅拉伸Sprite中间区域,边框保持原比例不变形


解决方案一:改用Image组件(推荐,适配UI/弹窗场景)

  1. 删除当前GameObject上的Sprite Renderer组件
  2. 将该对象拖入场景中已有的Canvas节点下,或者给它添加Canvas组件(如果需要在2D世界空间使用,把Canvas的Render Mode改成「World Space」即可)
  3. 添加Image组件,把配置好边界的Sprite拖到Image的「Sprite」属性栏
  4. 在Image组件的「Image Type」里选择Sliced,此时拉伸对象就会按照你设置的边界规则,只拉伸中间区域、边框保持不变

解决方案二:保留Sprite Renderer(适配纯2D场景)

Sprite Renderer本身不支持九宫格拉伸逻辑,若要在2D场景中实现相同效果,可选择以下方式:

  • 使用Unity的Sprite Shape工具,手动绘制可拉伸的边框网格
  • 安装第三方插件(比如「Sprite Slicer 2D」),为Sprite Renderer添加九宫格拉伸的扩展功能
  • 自行编写脚本,根据Sprite的边界参数动态修改Mesh顶点,实现局部拉伸逻辑

内容的提问来源于stack exchange,提问作者Олег Верушкин

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 04:20:03