작업 내용
1. 레이어(씬)별 작업 진행상황 문서 작성
2. 기존 코드 수정작업 다수
3. UIBar prefab에 옵저버 적용
카드를 삭제하거나, 스킬을 활성화 할때 골드와 스킬포인트가 차감되어 UI에 반영된다.
특정 행동이 실행되면 NotifyObserver를 실행해 옵저버에 알리고 해당 옵저버에 엮여있는 OnNext를 모두 실행한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
//...
else if (characterData.UnLockedSkill.Contains(selectedSkillData.Parent)) {
//skillActivationButton.image.sprite = Resources.Load("UnlockSkillButtonImageUIPath...", typeof(Sprite)) as Sprite;
skillButtonText.text = $"{CommonDefineKR.UnlockSkillString}";
skillActivationButton.interactable = true;
skillActivationButton.onClick.AddListener(() => {
characterData.UnLockedSkill.Add(selectedSkillData.Number);
//...
characterData.SkillPoint -= 1;
CharacterInfoDAO.UpdatePlayerInfo(characterData);
SceneState.GetInstance()._UIStateHandler.NotifyObservers();
SetButton();
});
}
//...
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
public class UIBarInfoController : MonoBehaviour, IObserver<UIStateInfo> {
// Area
[SerializeField] Text playerNameText = null;
[SerializeField] Text playerLevelText = null;
[SerializeField] Text playerHpText = null;
[SerializeField] Text playerMpText = null;
[SerializeField] Text stageNameText = null;
[SerializeField] Image playerIconImage = null;
// Skill
[SerializeField] Text containSkillPointText = null;
// Gold
[SerializeField] Text coinText = null;
void Start() {
Init();
SceneState.GetInstance()._UIStateHandler.Subscribe(this);
SceneState.GetInstance()._UIStateHandler.NotifyObservers();
}
private void Init() {
CharacterInfoDTO characterInfo = CharacterInfoDAO.GetCharacterInfo();
playerNameText.text = characterInfo.Name;
playerLevelText.text = $"{CommonDefineKR.LevelString} {characterInfo.Level}";
playerHpText.text = $"{CommonDefineKR.HpString} {characterInfo.Hp}";
playerMpText.text = $"{CommonDefineKR.MpString} {characterInfo.Mp}";
AreaDTO area = AreaDAO.SelectArea(characterInfo.CurrentArea);
if (null != area) {
stageNameText.text = area.Name;
}
PortraitDTO portrait = PortraitDAO.SelectPortrait(characterInfo.Portrait);
playerIconImage.sprite = Resources.Load(portrait.ImagePath, typeof(Sprite)) as Sprite;
containSkillPointText.text = $"{CommonDefineKR.ContainSkillPointString} {characterInfo.SkillPoint}";
coinText.text = characterInfo.Gold.ToString();
}
public void OnNext(UIStateInfo value) {
Init();
}
public void OnCompleted() {
throw new NotImplementedException();
}
public void OnError(Exception error) {
throw new NotImplementedException();
}
}
|
cs |
'Unity > 작업&삽질노트' 카테고리의 다른 글
2021-08-12 작업일지 (0) | 2021.08.12 |
---|---|
2021-08-09 작업일지 (0) | 2021.08.09 |
2021-08-03 작업일지 (0) | 2021.08.03 |
2021-08-02 작업일지 (0) | 2021.08.02 |
[작업일지] 2019-06-13 (0) | 2019.06.13 |