使用示例
如有一个预制体fish,其上有一组件MyFish,MyFish有初始化方法init()和销毁方法myDestroy()。
游戏中需管理一组MyFish,大量地创建和销毁。
在管理类(如FishGroup)中,
定义字段
@property({ type: Prefab, visible: true })
private _myFishPrefab: Prefab;
private _fishPool: NodePool;
初始化时
public init():void
{
……
this._fishPool = new NodePool();
……
}
销毁时
public myDestroy(): void
{
……
this._fishPool.clear();
this._fishPool = null;
……
}
提供一个方法用于创建Fish
private createFish(): MyFish
{
let fishNode = this._fishPool.get();
if (!fishNode)
{
fishNode = instantiate(this._myFishPrefab);
}
return fishNode.getComponent(MyFish);
}
提供一个方法用于销毁Fish
private destroyFish(fish:MyFish):void
{
this._fishPool.put(this._fishes[i].myFish.node);
}
网友评论