网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
01月12日漏签0天
unity3d吧 关注:116,860贴子:562,153
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 4回复贴,共1页
<<返回unity3d吧
>0< 加载中...

【问题】切换场景时 静态变量是否会被清除

  • 只看楼主
  • 收藏

  • 回复
  • CRKakassi
  • Collider
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
据资料称
static 单例的变量 在切换场景的时候 是不会被清除的
我切换场景是后 这个变量本事倒是没有被清除 但是他的成员变量却被清除了
这是怎么回事? 难道本来就应该这样 难道这种情况之下要使用DontDestroyOnLoad 才能保证变量不被篡改?
具体的例子是这样的 我在进入游戏的menu场景里 创建了一个单例manager 比如:
public class HeroManager : MonoBehaviour
{
public static HeroManager shareHeroManager;
public List<HeroData> lHeroData;
.....
public static HeroManager GetShareHeroManager()
{
if(shareHeroManager == null)
{ GameObject obj=new GameObject();
shareHeroManager=obj.AddComponent<HeroManager>();
}
return shareHeroManager;
}
}
这样的一个单例类里面包含了玩家所使用英雄的数据 我当然希望他在任何切换场景的时候 都不会变化
但是我在切换场景之后
shareHeroManager 这个static变量是存在的 没有变成null
但是里面的lHeroData却变成了null
请大神指教



  • CRKakassi
  • Collider
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
刚刚调试了 似乎加了 DontDestroyOnLoad 是可以确保里面的数据不被篡改 但是。。。。 但是不是号称static可以逃过场景切换这一劫的吗?


2026-01-12 13:32:20
广告
不感兴趣
开通SVIP免广告
  • 贴吧用户_Q4SSMJA
  • Scene
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
原谅我挖坟@mayaxiaoan ,楼上楼主你说的话我还是稍微有点不能理解,如果是实例化后,请问切换场景的那个单列会不会被引擎删除?。你说的是他的方法单列没有被销毁还是说单列化后的成员赋值被销毁了?。


星座王
点亮12星座印记,去领取
活动截止:2100-01-01
去徽章馆》
登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 4回复贴,共1页
<<返回unity3d吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示