View ์ฝ๋๋ ๋ฐ๋์ Page
/Modal
๋ง๋ค ํ๋์ฉ ์์ฑํฉ๋๋ค.
SerializeField๋ก ๋ ํผ๋ฐ์ค ๊ฐ์ ธ์ค๊ธฐ
Copy [SerializeField] private TMPro.TMP_InputField idInputField;
[SerializeField] private TMPro.TMP_InputField passwordInputField;
[SerializeField] private Button signInButton;
์ ๋ ํผ๋ฐ์ค๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
UniTask๋ฅผ ์ด์ฉํ ์ด๋ฒคํธ ๋
ธ์ถ
Copy public IUniTaskAsyncEnumerable<AsyncUnit> OnSignInButtonClickedAsync => signInButton.OnClickAsAsyncEnumerable();
public IUniTaskAsyncEnumerable<string> OnIdInputFieldEditAsync => idInputField.OnValueChangedAsAsyncEnumerable();
public IUniTaskAsyncEnumerable<string> OnPasswordInputFieldEditAsync => passwordInputField.OnValueChangedAsAsyncEnumerable();
๊ธฐํ Lifecycle ์ธก์์ ์ฌ์ฉํ ๋ฉ์๋
Copy // ๋ทฐ์ ์ด๊ธฐํ์ ์ฌ์ฉ๋ฉ๋๋ค. Lifecycle ์ธก์ผ๋ก๋ถํฐ ๋ชจ๋ธ์ ์
๋ ฅ๋ฐ์ view์ ์ด๊ธฐ ํํ์ ์ฌ์ฉ๋ฉ๋๋ค.
public void SetView(SignInModalModel model)
// ๋ก๊ทธ์ธ ๋ฒํผ์ ํ์ฑํ ์ฌ๋ถ๋ฅผ ์กฐ์ ํ๋๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
public void SetSignInButtonInteractable(bool isInteractable)
// ํ์ฌ ๋ทฐ์ ID/PW ์
๋ ฅ ์ ๋ณด๋ฅผ ๋ฐํํฉ๋๋ค.
public LogInInfo GetCurrentInput()
Copy public class SignInModalView : ModalViewBase
{
[SerializeField] private TMPro.TMP_InputField idInputField;
[SerializeField] private TMPro.TMP_InputField passwordInputField;
[SerializeField] private Button signInButton;
public IUniTaskAsyncEnumerable<AsyncUnit> OnSignInButtonClickedAsync => signInButton.OnClickAsAsyncEnumerable();
public IUniTaskAsyncEnumerable<string> OnIdInputFieldEditAsync => idInputField.OnValueChangedAsAsyncEnumerable();
public IUniTaskAsyncEnumerable<string> OnPasswordInputFieldEditAsync => passwordInputField.OnValueChangedAsAsyncEnumerable();
public void SetView(SignInModalModel model)
{
// ์์์์๋ ์์ฑํ์ง ์์์ต๋๋ค๋ง,
// ๋ทฐ์ ์ด๊ธฐํ ์ ๋ณด๋ฅผ ๋ฐ์ ํ๋ฉด์ ๋ฟ๋ ค์ฃผ๋ ์ญํ ์ ํ๊ฒ ๋ฉ๋๋ค.
// ์) ID/PW์ PlaceHolder text, ์๋ด ๋ฉ์์ง ๋ฑ๋ฑ... ์ ๊ตฌํํ๋ฉด ๊ด์ฐฎ๊ฒ ๋ค์.
}
public void SetSignInButtonInteractable(bool isInteractable)
{
signInButton.interactable = isInteractable;
}
public LogInInfo GetCurrentInput()
{
return new LogInInfo(idInputField.text, passwordInputField.text);
}
}
public class LogInInfo
{
public string ID { get; private set; }
public string Password { get; private set; }
public LogInInfo(string id, string password)
{
ID = id;
Password = password;
}
}