사생활 보호 설정
https://gamjia.tistory.com
Updated News
Mini Rooms
답글수 [0]
What Friends Say
한마디로 표현해봐~
1촌평 관리
수박게임 재개발일지 - 4
GamJia 2024. 9. 1. 04:58
수박게임 재개발일지 4편뭐냐 왜 9월이냐
3주만에 다시 쓰는 재개발일지..~
왜 안 올렸냐면..
놀아서
덥기도 하고 친구도 없어서
집에서 열심히 자고 먹고 놀았다
https://www.youtube.com/watch?v=qpB7A4x3KO8&list=RDMMqpB7A4x3KO8&start_radio=1
진짜 오랜만에 영상 편집도 했다
내가 좋아하는 Aici님이 신곡을 냈는데
어케 참아 심지어 멜론에도 나와서
가사 등록까지 완료했음
(멜론 빨리 올려 ㅅㅂ)
그리고 요즘 갑자기 이상할 정도로
방문자가 갑자기 늘었다
원래 아무도 안보던 블로그인데
갑자기 이렇게 많이 오셔서
놀랐고 당황스러웠다......
더 열심히 쓰겠습니다......
놀고싶다
슴슴한 업데이트로 표정 변화를 주고 싶어서
얼굴이랑 배경을 분리를 했다
옆에 보이는건 소 등골 먹방인데
나도 엄마 등골 브레이커라 그런가
요즘 자꾸 등골 먹방이 끌림;;;;;
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class UIManager : MonoBehaviour { public static UIManager Instance => instance; private static UIManager instance; [SerializeField] Text capsuleText; private void Awake() { if (null == instance) { instance = this; } } // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { } public void UpdateCapsuleText(int capsuleID) { switch(capsuleID) { case 0: capsuleText.text = "Red"; break; case 1: capsuleText.text = "Orange"; break; case 2: capsuleText.text = "Yellow"; break; case 3: capsuleText.text = "Green"; break; case 4: capsuleText.text = "Blue"; break; default: capsuleText.text = "Unknown"; break; } } }
그리고 이건 뭐 전이랑 다를거 없는 내용인데
다음 객체가 뭔지 알려주는 내용을 추가했다
애초에 빨강~파랑까지만 갈고리에 생성돼서
그냥 switch문에 넣어주었다
기존 내용을 조금 고쳐서
randomID를 이용해 다음 객체를 list에 넣어두고
그걸 이용한 UI 기능도 연결해주었다
잘 확인이 된 모습이다
그리고 이게 기존의 구조
capsuleID와 capsule의 Dictionary로
이루어진 구조인데 이러면
나중에 원하는 데이터를 추가하기 힘들어서
구조를 바꿔주었다
capsuleID와 capsuleData의 dictionary 구조로 변경해
추가하고 싶은 정보가 있으면 여기에
때려박기로 했다 이렇게 되면
너 ID가 뭐야!
Red 입니다
prefab은!
이거입니다
너 몇점이야!
1점입니다
근데 원래 내용이랑 비교했을 때
set이 추가된걸 확인할 수가 있다
저건 도대체 뭘까?
그걸 알려면 속성과 접근자를
이해할 필요가 있다
속성(Property)
속성은 클래스나 구조체의 데이터를
외부에서 접근할 수 있도록 하는 메커니즘이다
저 위에 있는 get, set 같은 접근자(Accessor)를 통해
데이터를 읽거나(get) 설정(set)할 수 있다
get 접근자
속성의 값을 반환하고
읽기 전용이라 데이터를 수정할 수 없다
set 접근자
속성의 값을 수정할 수 있다
쓰기 전용이다
그래서 왜 Set이 추가된건데?
<capsuleID,capsuleData> Dictionary를 생성하는 중에
capsuleData 객체를 생성하고
capsule 속성에 값을 할당하는 과정이 있다
capsule = capsuleArray[i].capsuleData.capsule, capsuleScore = capsuleArray[i].capsuleData.capsuleScore // 이 부분
쓰기 전용인 set 접근자가 있어야
이 capsule 속성의 값을 설정할 수 있게 되기에
set을 추가해준 것이다
이게 없으면 읽기만 가능해서
capsule = 무슨 값
이걸 할 수가 없어진다는 것이다.
Unity로 돌아와 Capsule Array를 확인해보니
CapsuleID와 CapsuleData(capsule+capsulescore)로
이루어진걸 확인했다
GameObject와 점수를 입력해주었다
사실 내가 전에는 점수를 얼마 입력했는지
기억이 안나서 원작 점수를 입력했다
storage에 id를 입력하면 거기에 맞는
데이터를 반환해주는 내용을 넣어주고
거기에 맞게 Merge 부분을 수정해
현재 없앨 ID에 1을 더한 값을 넣어서
ID의 Value가 있을 경우
그 Value(Data)의 capsule score를 불러와
출력하는 내용을 테스트용으로 추가해봤다
(capsuleID, capsuleData의 Dictionary 구조이기에
capsuleID의 Value는 capsuleData가 된다)
노랑,노랑을 합치면
초록색이 나오기에
console에 10점이 표시되면
정상적으로 데이터를 받아오게 되는 것이다
다행히 점수를 잘 받아왔다!
이제 이 점수를 UI에 표시하는 내용을
추가해보겠다
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class UIManager : MonoBehaviour { public static UIManager Instance => instance; private static UIManager instance; private int score=0; [SerializeField] Text capsuleText; [SerializeField] Text scoreText; ... public void UpdateScore(int addScore) { score += addScore; scoreText.text = score.ToString("D3"); } }
점수를 Update하는 내용을 하나 추가한 다음
Merge에 연결해주었다
주황색과 주황색을 Merge 시켜봤더니
노란색 캡슐의 점수 6점이
화면에 잘 표시된걸 확인했다
아 오늘 한 것도 없는데 왜케 졸리지???
오늘도 사실 13시간? 잤는데;;
핫핫핫..^^;;;;