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的区别_第1张图片
image.png

图中两个Image 脚本挂Canvans上
然后运行


unity探究UGUI的Image中sprite和overrideSprite的区别_第2张图片
image.png

成功了把左边的Sprite赋值给右边

        image.sprite = sp;
        image1.overrideSprite = image.sprite;

这样赋值过去呢


unity探究UGUI的Image中sprite和overrideSprite的区别_第3张图片
image.png

也可以

        image.overrideSprite = sp;
        image1.overrideSprite = image.overrideSprite;
unity探究UGUI的Image中sprite和overrideSprite的区别_第4张图片
image.png

也成功了

        image.overrideSprite = sp;
        image1.overrideSprite = image.sprite;

如果这样呢


unity探究UGUI的Image中sprite和overrideSprite的区别_第5张图片
image.png

神奇的事情发生了右边获取不到原因估计是overrideSprite和sprite属性是两个不同的容器
然后第一个sprite没有被赋值

image.sprite = sp;
image1.overrideSprite = image.overrideSprite;

这样不给override值呢


unity探究UGUI的Image中sprite和overrideSprite的区别_第6张图片
image.png

这竟然可以

总结 如果图有Sprite值可以获取到其overrideSprite值 反之不能

之前用luaframwork框架的sprite赋值图片直接没效果 只能用overrideSprite

你可能感兴趣的:(unity探究UGUI的Image中sprite和overrideSprite的区别)