250607

lililllilillll·2025년 6월 7일

개발 일지

목록 보기
195/350

✅ What I did today


  • LD Challenge : L001 : Day 9
  • Art Practice : Drawing


🎯 LD Challenge : L001 : Day 9


list를 다시 dictionary로 되돌렸다.
edge를 생성하기 위해선 다른 노드에 대한 참조가 필요한데,
key만으로 검색하면 O(n)이기 때문.

JsonUtility는 최종적으로 감싸고 있는게 반드시 객체 (중괄호, {})여야만 한다.
그래서 저장할 때 말고도 불러올 때도 List지만 Serialization<T>로 다시 또 감싸야 함.

새 text asset을 load할 때 contentLayer를 Clear()해야 했는데,
edgeLayer도 contetnLayer 아래에 뒀었어서 Clear()하면 같이 사라지는 상황.
contentLayer 아래에 nodeLayer를 새로 추가하고,
node를 추가하는 곳을 nodeLayer로 바꾸어 변경 최소화.

node를 움직일 때 자신을 가리키는 edge도 움직여야 하는데 그 정보가 현재 없음
NodeElement에 자신을 가리키는 EdgeElement들도 관리할까 했는데
애초에 dict에 VisualElement를 갖고 있으면 다 해결되는 일이었다.
이미 이 문제 때문에 파일 불러올 때 edge를 load하는 중에 임시 dict 만드는 workaround로 해결했었는데,
계속 workaround로만 떼우다간 나중에 더 피곤해질까봐 지금 다시 리팩토링.

근데 다 바꾸고 나서 생각해보니 NodeElement에 자신을 가리키는 edge 할당을 하긴 해야 함.
VisualElement의 dictionary가 그런 할당에 '필요하니까' 바꿔야 했던 거지 바꾸면 모든게 해결되는게 아니었다.
public List<EdgeElement> inEdge, outEdge;를 선언하여 관리 추가.
로드, 추가, 삭제 이 세 경우만 생각하면 된다.
삭제는 아직 구현 안 했고, 추가는 생성자에만 로직 끼워넣으면 되는거라 고민했던거 치고 간단했다.

궁금해서 다른 노드 기반 편집기들 찾아봤는데 GraphView API를 이용했으면 더 노드 기반에 알맞게 만들 수 있었을듯.
근데 그랬으면 edge를 custom하기 힘들긴 했을듯?

contentLayer 움직인 후에 노드 움직이면 이상한 곳으로 가버리는 버그
o3로 고치긴 했는데 내일 원리 파악할 것



🎨 Art Practice : Drawing




profile
너 정말 **핵심**을 찔렀어

0개의 댓글