XPool icon indicating copy to clipboard operation
XPool copied to clipboard

[FEATURE] `RentWithState`

Open mackysoft opened this issue 3 years ago • 1 comments

Before

public struct ProjectileRequest {
    public int power;
    public float speed;
}

public void Shoot (ProjectileRequest request) {
    var projectile = m_ProjectilePool.Rent(position,rotation);
    projectile.Power = request.power;
    projectile.Speed = request.speed;
}

After

public class ProjectilePool : PoolWithStateBase<Projectile,ProjectileRequest> {
    protected override void OnRent (Projectile instance,ProjectileRequest state) {
        instance.Power = state.power;
        instance.Speed = state.speed;
    }
}

public void Shoot (ProjectileRequest request) {
    var projectile = m_ProjectilePool.Rent(request,position,rotation);
}

mackysoft avatar Feb 23 '22 01:02 mackysoft

  • Basically, pool is not public and is used internally.
  • Methods such as Shoot use Rent internally.
  • Methods such as Shoot may have multiple arguments.

mackysoft avatar Feb 23 '22 02:02 mackysoft