unity探究UGUI的Image中sprite和overrideSprite的区别

【unity探究UGUI的Image中sprite和overrideSprite的区别】今天项目有些获取不到Sprite来研究一下

Image image; Image image1; Sprite sp; Sprite sp1; // Use this for initialization void Start() { image = transform.Find("Image").GetComponent(); image1 = transform.Find("Image (1)").GetComponent(); sp = Resources.Load("006_icon_plant1_1") ; sp1 = Resources.Load("006_icon_plant1_2") ; image.sprite = sp; image1.sprite = image.sprite;

unity探究UGUI的Image中sprite和overrideSprite的区别
文章图片
image.png
图中两个Image 脚本挂Canvans上
然后运行

unity探究UGUI的Image中sprite和overrideSprite的区别
文章图片
image.png
成功了把左边的Sprite赋值给右边
image.sprite = sp; image1.overrideSprite = image.sprite;

这样赋值过去呢

unity探究UGUI的Image中sprite和overrideSprite的区别
文章图片
image.png
也可以
image.overrideSprite = sp; image1.overrideSprite = image.overrideSprite;

unity探究UGUI的Image中sprite和overrideSprite的区别
文章图片
image.png 也成功了
image.overrideSprite = sp; image1.overrideSprite = image.sprite;

如果这样呢

unity探究UGUI的Image中sprite和overrideSprite的区别
文章图片
image.png
神奇的事情发生了右边获取不到原因估计是overrideSprite和sprite属性是两个不同的容器
然后第一个sprite没有被赋值
image.sprite = sp; image1.overrideSprite = image.overrideSprite;

这样不给override值呢

unity探究UGUI的Image中sprite和overrideSprite的区别
文章图片
image.png
这竟然可以
总结 如果图有Sprite值可以获取到其overrideSprite值 反之不能
之前用luaframwork框架的sprite赋值图片直接没效果 只能用overrideSprite

    推荐阅读