如果您的游戏同时使用需要加载同一地形的多个世界,例如具有多个独立服务器或房间的 MMO 游戏,您可以通过将所有世界设置为共享同一静态预生成 NavData 来节省内存。
但是,您创建的每个 NavData 只能添加到单个世界的单个数据库中。要在多个世界之间共享同一 NavData,您必须为每个世界创建一个 NavData 对象,然后将每个 NavData 对象设置为使用相同的原始数据。
要设置每个 NavData 实例,请在对 NavData::LoadFromMemory() 的调用中传递原始数据缓冲区:
for(KyUInt32 worldIdx = 0; worldIdx < worldCount; worldIdx++) // for each World { Kaim::Ptr<Kaim::NavData> navData = *KY_NEW Kaim::NavData; navData->LoadFromMemory(myDataBuffer); ... // Add your NavData in the World with index worldIdx }