You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity3D运行时如何为SpriteRenderer设置程序生成的Sprite

运行时修改SpriteRenderer的Sprite属性不生效解决方案

核心错误定位

你代码中Sprite.Create的第三个参数pivot(锚点) 传入值错误:Unity要求该参数为[0,1]区间的归一化相对坐标,你传入的是贴图像素绝对中心点,远大于1的数值会导致Sprite锚点偏移到贴图外几百个单位,最终生成的Sprite直接超出相机视野,看起来就像赋值未生效。
而Image组件会自动适配Sprite的锚点做UI布局,所以赋值给Image可以正常显示,这也验证了你生成的Sprite本身没有问题。

修复步骤

1. 修正Sprite.Create参数

显式传入正确的归一化锚点,以及匹配你项目设置的像素每单位(PPU,默认项目为100),同时增加空校验和Renderer刷新逻辑,修改后的setTexture方法如下:

public void setTexture(Texture2D texture)
{
    // 参数说明:
    // 1. 纹理对象
    // 2. 贴图使用区域
    // 3. 归一化锚点,(0.5,0.5)为中心点
    // 4. 像素每单位,和你项目Sprite默认导入设置的PPU保持一致
    sp = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f), 100f);
    
    SpriteRenderer sr = background.GetComponent<SpriteRenderer>();
    if (sr != null)
    {
        sr.sprite = sp;
        // 强制刷新Renderer,避免缓存问题
        sr.enabled = false;
        sr.enabled = true;
        // 运行时可赋值后选中background对象,在Scene视图确认Sprite位置
        Debug.Log($"Sprite更新完成,尺寸:{sp.rect.size},锚点:{sp.pivot}");
    }
}

2. 替换过时的WWW加载逻辑(可选,高版本Unity建议修改)

你使用的WWW类已经在Unity 2018+版本中被弃用,存在纹理加载异常的风险,替换为UnityWebRequestTexture加载更稳定,需要先引入命名空间:

using UnityEngine.Networking;

修改后的LoadTexture协程代码:

IEnumerator LoadTexture(string url)
{
    using (UnityWebRequest uwr = UnityWebRequestTexture.GetTexture(url))
    {
        yield return uwr.SendWebRequest();
        if (uwr.result != UnityWebRequest.Result.Success)
        {
            Debug.LogError("图片加载失败:" + uwr.error);
        }
        else
        {
            Texture2D texture = DownloadHandlerTexture.GetContent(uwr);
            Debug.Log("Loaded image size: " + texture.width + "x" + texture.height);
            setTexture(texture);
        }
    }
}

3. 其他校验项

如果修改后仍不生效,检查以下配置:

  • 确认Inspector面板中background字段已经拖入正确的对象,不存在空引用
  • 确认background对象上SpriteRenderer组件的Color属性alpha值不为0,Sorting Layer、Order in Layer配置正确,没有被其他对象遮挡
  • 运行时选中background对象,查看Scene视图中Sprite是否存在,确认其位置在相机视野范围内

内容的提问来源于stack exchange,提问作者sesmajster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 06:36:02