Image”不包含“texture”的定义,并且没有可访问的扩展方法“texture”接受“Image”类型的第一个参数

Dan*_*ani 2 unity-game-engine visual-studio

导入项目后,Unity 中不断出现此错误。

这是代码:

public static void CameraFadeSwap(Texture2D texture){
    if(cameraFade){
        cameraFade.GetComponent<Image>().texture=texture; 
    }
}
Run Code Online (Sandbox Code Playgroud)

错误是:

Assets\Scripts\Utils\iTween.cs(6016,37): error CS1061: 'Image' does not contain a definition for 'texture' and no accessible extension method 'texture' accepting a first argument of type 'Image' could be found (are you missing a using directive or an assembly reference?)
Run Code Online (Sandbox Code Playgroud)

如何解决?

der*_*ugo 5

嗯,事实并非如此(请参阅Image)。


但我认为你正在尝试的是分配一个新的Image.sprite

因此,您需要使用该纹理从该纹理创建一个新的精灵Sprite.Create

public static void CameraFadeSwap(Texture2D texture)
{
    if(cameraFade)
    {
        var newSprite = Sprite.Create(texture, new Rect(0.0f, 0.0f, texture.width, texture.height), Vector2.one * 0.5f);
        cameraFade.GetComponent<Image>().sprite = newSprite;
    }
}
Run Code Online (Sandbox Code Playgroud)