Игрок теперь играется
This commit is contained in:
1 parent
0f708ff4cb
commit
ddb76a5b93
21 files changed
+1618
-445
No files matched your search
@@ -1,13 +1,20 @@
|
||||
using UnityEngine;
|
||||
using Code.Configs;
|
||||
using Code.Gameplay.Character.Core;
|
||||
using Cysharp.Threading.Tasks;
|
||||
using Reflex.Attributes;
|
||||
using Reflex.Core;
|
||||
using Reflex.Extensions;
|
||||
using Reflex.Injectors;
|
||||
using UnityEngine.AddressableAssets;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
namespace Code.Gameplay.Player
|
||||
{
|
||||
public class PlayerFactory : IPlayerFactory
|
||||
{
|
||||
[Inject] PlayerConfig _playerConfig;
|
||||
|
||||
|
||||
public PlayerHealth CreatePlayerHealth(int count = -1)
|
||||
{
|
||||
if (count < 0) count = _playerConfig.maxHealth;
|
||||
@@ -15,5 +22,18 @@ namespace Code.Gameplay.Player
|
||||
return new(count);
|
||||
}
|
||||
public PlayerMoney CreatePlayerMoney(int count = 0) => new(count);
|
||||
|
||||
public async UniTask<CharacterProvider> CreatePlayer()
|
||||
{
|
||||
CharacterProvider characterProvider = (await Addressables.InstantiateAsync(_playerConfig.characterPrefab).ToUniTask()).GetComponent<CharacterProvider>();
|
||||
AttributeInjector.Inject(characterProvider, Container.ProjectContainer);
|
||||
AttributeInjector.Inject(characterProvider.CustomCharacterController, Container.ProjectContainer);
|
||||
return characterProvider;
|
||||
}
|
||||
|
||||
public void ReleasePlayer(CharacterProvider characterProvider)
|
||||
{
|
||||
Addressables.ReleaseInstance(characterProvider.gameObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user