protected override void AddOutOfScreenComponent(PoolableView go) { if (go.GetComponent <OutOfScreenView>() == null) { go.gameObject.AddComponent <OutOfScreenView>(); } go.GetComponent <OutOfScreenView>().wasInScreen = false; }
void OnReturnInstanceSignalDispatched(PoolableView view) { TypeSwitch.Do( view, TypeSwitch.Case <PlayerShipLaserView>(x => playerLaserPool.ReturnInstance(x)), TypeSwitch.Case <AsteroidView>(x => asteroidPool.ReturnInstance(x)), TypeSwitch.Case <EnemyShipView>(x => enemyShipPool.ReturnInstance(x)), TypeSwitch.Default(() => { throw new NotSupportedException("This view can not supported!!!!!"); }) ); }
protected abstract void AddOutOfScreenComponent(PoolableView go);
public void OnConstruct() { poolable = root == null?GetComponent <PoolableView>() : root; }