PoolManager插件从池子中取出多种对象

在使用PoolManager插件进行内存管理的时候,遇到一个神坑,就是从PoolManager池子向Scene中加载对象时,只能加载一个对象,当时使用循环以为就可以依次加载,但是始终只是加载第一个,无奈我使用了一个携程,让其隔一帧便加载一次,很幸运的是他耗好使了,当我再次注释携程,使用以前的,下面的红色部分时,场景又可以成功加载出全部。对于Unity充满的无奈,但还是建议使用协程逐帧加载,可以减少内存拥挤。

for (int i = 0; i < creaturePrefabsName.Length; i++) {
creaturePrefabsName [i] = objNames.Substring (i * 2, 2);
Debug.Log ("Prefabs/" + fileName + "/" + creaturePrefabsName [i]);
testPrefabs = Resources.Load<Transform> ("Prefabs/" + fileName + "/" + creaturePrefabsName [i]);
prefabPool = new PrefabPool (testPrefabs);
Debug.Log ("zhixing");
//默认初始化两个Prefab
prefabPool.preloadAmount = 1;
//开启限制
prefabPool.limitInstances = true;
//关闭无限取Prefab
prefabPool.limitFIFO = false;
//限制池子里最大的Prefab数量
prefabPool.limitAmount = coluSize*rowSize;
//开启自动清理池子
prefabPool.cullDespawned = true;
//最终保留
prefabPool.cullAbove = 10;
//多久清理一次
prefabPool.cullDelay = 5;
//每次清理几个
prefabPool.cullMaxPerPass =5;
//初始化内存池
spawnPool._perPrefabPoolOptions.Add(prefabPool);
spawnPool.CreatePrefabPool (spawnPool._perPrefabPoolOptions[i]);
//StartCoroutine ("LoadScenesFromPerPrefabPoolOptions", i);
}

IEnumerator LoadScenesFromPerPrefabPoolOptions (int n) {
yield return new WaitForFixedUpdate ();
spawnPool.CreatePrefabPool (spawnPool._perPrefabPoolOptions[n]);
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值