250605

lililllilillll·2025년 6월 5일

개발 일지

목록 보기
193/350

✅ What I did today


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


🎯 LD Challenge : L001 : Day 7


배운 거

Debug.Log(string.Join(", ", node.GetClasses()));로 실제로 붙어있는 클래스 확인 가능.
(굳이 이렇게 안 해도 디버거에서 확인 가능)

RegisterCallback<GeometryChangedEvent>(OnGeometryChanged);
: UI 요소의 크기나 위치가 변경될 때 OnGeometryChanged 콜백을 호출

generateVisualContent += OnGenerate;
: custom geometry VisualElement를 그릴 때 사용한다.
맨 처음 그려질 때나 repaint가 필요할 때 호출됨.
매 프레임마다 호출되진 않음.
MarkDirtyRepaint() 호출하면 OnGenerate()도 호출됨.

private Vector2 _currentMousePos;
public Vector2 currentMousePos => _currentMousePos;

get 프로퍼티를 별도로 선언하면 향후 로직 추가 가능.
public Vector2 currentMousePos { get; private set; } 간단하게 자동 구현 프로퍼티 쓰면 그런거 불가능.

메뉴 만드는 법

  • ContextualMenuManipulator
  • contextualMenuPopulateEvent
  • MouseDown + GenericMenu

한 거

gpt는 마우스 로직을 화살표 로직 안에 넣어버리길래, window 클래스에서 이벤트로 빼냄.
프로퍼티로 선언해놓고, callback은 delegate에 넣어놓고 필요할 때만 register
아예 의존성 덜 만들기 위해 모든 화살표가 window class를 참조로 갖고 있는 것이 아니라
Window class에서 지금 움직이고 있는 화살표에다가 SetMousePosition()을 호출
마우스 위치 추적으로 사용하는게 아니라 connection용으로 특화시켜서 굳이 필드 선언 안 하고 바로 현재 마우스 포지션 넣는 걸로 바꿈

EventCallback<MouseMoveEvent> 이런 식으로 delegate 선언해놓으면 Register할 때 무슨 콜백인지 명시 안 하고 바로 구독된다.
근데 굳이 delegate 선언하는게 더 귀찮아서 어떤 이벤트인지 명시하는 대신 바로 함수 넣어버림

TextField 문제

  • 여러 줄 입력을 위해 multiline을 true로 바꾸면 height 설정이 무효화됨 : nodeTextField.verticalScrollerVisibility = ScrollerVisibility.AlwaysVisible;
  • 엔터를 누르면 한 줄 밀려 올라가며 기존 텍스트가 보이지 않게 됨 : input.style.unityTextAlign = TextAnchor.UpperLeft;

TextField 문제를 해결하려다 App UI에 대해 알게됨. 훨씬 깔끔하고 Customization도 가능한듯. 무엇보다 TextArea가 있음. 내일 시도해보기.

오늘 결과



🎨 Art Practice : Drawing


양쪽에서 맞춰가려고 하다간 둘 다 어긋난다.
한쪽에서부터 시작해야 한다.

본 그대로를 가져오려고 하는게 아니라 형태를 가져와야 한다.
길이까지 그대로 그리려고 하면 원본 비율과 섞이면서 이상하게 그려질 수밖에 없다.

눈 위쪽에 희끄무레한 색을 바르면 깊이감이 살아난다



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

0개의 댓글