49 lines
1.6 KiB
C#
49 lines
1.6 KiB
C#
using Cysharp.Threading.Tasks;
|
|
using UnityEngine;
|
|
|
|
namespace Game
|
|
{
|
|
[Procedure(ProcedureType.LoadingGameSceneProcedure)]
|
|
class LoadingGameSceneProcedure : ProcedureBase
|
|
{
|
|
public override void Init()
|
|
{
|
|
base.Init();
|
|
EventManager.Instance.Subscribe(InputNameFinishEventArgs.EventId, InputNameFinishEvent);
|
|
}
|
|
|
|
public override void Dispose()
|
|
{
|
|
base.Dispose();
|
|
EventManager.Instance.Unsubscribe(InputNameFinishEventArgs.EventId, InputNameFinishEvent);
|
|
}
|
|
|
|
private void InputNameFinishEvent(object sender, GameEventArgs e)
|
|
{
|
|
var args = e as InputNameFinishEventArgs;
|
|
var player = Game.playerManager.CreatePlayer(args.playerName, "player1", 10);
|
|
Game.playerManager.SetCurrentPlayer(player);
|
|
player.self.transform.position = new Vector3(-9.6f, -10.3f);
|
|
Game.procedureManager.ChangeProcedure(ProcedureType.EnterGameSceneProcedure);
|
|
}
|
|
|
|
public override void OnEnter()
|
|
{
|
|
base.OnEnter();
|
|
|
|
UniTask.Create(async () =>
|
|
{
|
|
await Game.resourceManager.LoadSceneAsync(SceneType.Game);
|
|
Game.uiManager.ShowUI(UIType.InputNameUI);
|
|
EventManager.Instance.FireNow(this, new LoadingGameSceneFinishEventArgs(true));
|
|
}).Forget();
|
|
}
|
|
|
|
public override void OnLeave()
|
|
{
|
|
base.OnLeave();
|
|
Game.uiManager.ShowUI(UIType.GameSceneMainUI);
|
|
Game.uiManager.HideUI(UIType.InputNameUI);
|
|
}
|
|
}
|
|
} |