关卡下去到什么是底层人是不是就永远上不来了

等你们家谷歌主子玩儿尽兴了 换遊戏了 你是不是还要花几百万让他回来 好好的周年活动 不给福利不说

本来预算2000RMB的 不打算充了 告辞 老老实实打竞技

UE4开发中很多对象在切换关卡中,伴随定义在Actor的各种对象伴随着Actor的消亡也被GC掉了比如在我们AMyCharacter里定义各种UObject变量,等切换关卡时我们的Character销毁了,于是里面的各种UObject也跟着消亡被GC了那么我们如果需要一些数据在游戏中全局存在,得怎么办呢

(1)在MyGameInstance定义的对象, 切换关卡的时候是不被GC的是全局存在的。

(2)用SaveGame来保存相应的数据但是SaveGame应该更多用于游戏关闭后保存数据在本地,在开始时在读取数据的情况(也就是存储和读取游戏档案),當然你可以巧妙的在上一个关卡结束时保存数据到本地下一个关卡时在读取本地的数据。

我们经常性的需要一些跨越整个游戏的单例类并且这些单例类的属性变量,哪怕切换关卡相应的变量都不会被GC掉。

这时候我们可以定义全局单例类Singleton

怎么实现全局单例模式Singleton呢?

 
 
 
 
 
 
 
 
 

  
 
 
作为一個管理游戏天气的单例类全局不会被GC,这里定义一些变量

 
 
 
 

  
 
 

 
 
 
 
 
编辑器选择游戏开始的单例类为GameSingleton

编辑器选择游戏开始的游戏实例类为MyGameInstance

 


  
 

其中的MyGameInstance仅僅是为创建单例类做个小例子不属于单例类实现的部分,你可以在任意地方随时创建和访问继承于SingleAttribute的单例对象.当然你直接在MyGameInstance定义的变量嘟是切换关卡的时候也是不被GC的然而一个完整的项目需要的单例类可能有点多,像我这种做法可能好点

我要回帖

更多关于 底层 的文章

 

随机推荐