Sprite实例化之后Node大小固定的问题

我在做一个功能的时候,用到了Prefab预制体。在代码里动态添加,并设置SpriteFrame图片,不同的图片大小不同,想要显示的效果也是大小不同。但事际上实例化后添加到场景上,发现有的图片被缩放了。研究一通后,有的说需要在代码里面动态改变Sprite所在节点的大小,这样挺麻烦的,有一个简单的方法就是,设置Sprite的SizeModel,Custom模式不会动态调整Node大小,其他两种就可以动态调Node大小。详细介绍如下:

  • Size Mode:用来将节点的尺寸设置为原图或原图裁剪透明像素后的大小,通常用于在序列帧动画中保证图像显示为正确的尺寸
    • TRIMMED:会将节点的尺寸(size)设置为原始图片裁剪掉透明像素后的大小
    • RAW:会将节点尺寸设置为原始图片包括透明像素的大小
    • CUSTOM:自定义尺寸,用户在修改 Size 属性,或在脚本中修改 width 或 height 后,都会自动将 Size Mode 设为 CUSTOM

=================================================================

   另外Sprite的Type,除了Custom方式, Filled方式做进度条时用到。  做气泡圆角不想拉伸时会用到Sliced方式。

  • Type:渲染模式,包括普通(Simple)、九宫格(Sliced)、平铺(Tiled)和填充(Filled)渲染四种模式
    • Simple:按照原始图片资源样子渲染 Sprite,一般在这个模式下我们不会手动修改节点的尺寸,来保证场景中显示的图像和美术人员生产的图片比例一致。
    • Sliced:图像将被分割成九宫格,并按照一定规则进行缩放以适应可随意设置的尺寸.四个角保护原像素不变,其他部分根据尺寸作相应伸缩
    • Tiled:当 Sprite 的尺寸增大时,图像不会被拉伸,而是会按照原始图片的大小不断重复
    • Filled:根据原点和填充模式的设置,按照一定的方向和比例绘制原始图片的一部分。经常用于进度条的动态展示。
      • Fill Type:填充类型选择,有 HORIZONTAL(横向填充)、VERTICAL(纵向填充)和 RADIAL (扇形填充)三种。
      • Fill Start:填充起始位置的标准化数值(从 0 ~ 1,表示填充总量的百分比),从哪里开始填充
      • Fill Range:填充范围的标准化数值(从 0 ~ 1,表示填充总量的百分比),填充多少
      • Fill Center:填充中心点,只有选择了 RADIAL 类型才会出现这个属性
      • 而 RADIAL 类型中 Fill Start 只决定开始填充的方向,Fill Start 为 0 时,从 x 轴正方向开始填充,Fill Range 决定填充总量,值为 1 时将填充整个圆形。Fill Range 为正值时逆时针填充,为负值时顺时针填充。
  • Trim:勾选后将在渲染 Sprite 图像时去除图像周围的透明像素,我们将看到刚好能把图像包裹住的约束框。取消勾选,Sprite 节点的约束框会包括透明像素的部分
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值