Unity Image.sprite 与 Image.overrideSprite 的区别

Unity Image.sprite 与 Image.overrideSprite 的区别

Override sprite is for it you want to quickly set a image without changing the original. If you want to change something on a permanent basis use sprite.
by phil-Unity (Unity UI Lead Developer) src

根据官方的说法,overrideSprite 用于临时修改图片,sprite 用于永久修改图片。

可以这样理解:overrideSprite 用于修改图片,但是不会把原来的图片给消除掉,直接的效果是如果 overrideSprite 是 null 的话,会变回原本的图片。可以理解为 overrdieSprite 是覆盖在 sprite 上的一层图片。所以,若使用 overrideSprite 更换图片,接下来要更换也只能用overrideSprite再覆盖掉,除非把它置为 null,不然用 sprite 更换是显示不出来的。

参考资料

  1. UI.Image change sprite on script
  2. Image中的overrideSprite和sprite有什么区别吗?
  3. Unity3D:代码中改变Sprite
  4. UGUI中动态改变image的sprite
  5. Image.overrideSprite
  6. Image.sprite/overrideSprite not changing
  7. Manually Update/Redraw Scene View?
  8. transform.Translate(new Vector3(0,0,0)); How do you force redraw?