private async UniTask OwnToken(IStateToken token) { var result = token.TakeOwnership(this); _token = result ? token : null; _isStateActive = result; await ExecuteAsync(token.Context); }
private bool OwnToken(IStateToken token) { var result = token.TakeOwnership(this); if (result && autoRestart) { _state.ExitState(); } _token = result ? token : null; _isStateActive = result; return(result); }