TIL 250512

강성원·2025년 5월 28일

TIL 경험하고 배운 것

목록 보기
75/84

건설 기능


  • 좌클릭 → 빌드
    우클릭 → 빌드모드 취소 구현
  • 건물 위에 건설 불가하게 막아야함.

아이템 데이터


아이템의 데이터 지정 방법 고민

아이템 데이터는 일반 클래스로 선언해두고, 필요한 쪽에서 리스트로 사용
인스펙터에서 아이템 데이터의 enum이나 스프라이트 조절

  • 그냥 모든 아이템의 데이터는 SO로 만듦

이유는 아이템 데이터 클래스를 리스트로 만들어놔도 내부의 메서드를 사용하려면 인스턴스로 생성이 되는 과정이 필요했기에,, 앞에 했던 생각은 비논리적이었다.
C#의 기본기를 까먹은 실수는 오랜만이었다.

추가로 SO에 프리팹 드래그앤 드랍 할 때, SO 내부의 스프라이트 변수에 프리팹의 스프라이트를 대입해주고 싶었다.
OnValidate()를 재정의 해주면 드래그앤 드랍 시에 프리팹의 스프라이트를 SO클래스의 스프라이트에 대입되게 할 수 있다.
간단한 편의성을 챙겼음.

#if UNITY_EDITOR
    public void OnValidate()
    {
        if (prefab != null)
            sprite = prefab.GetComponent<SpriteRenderer>()?.sprite;
    }
#endif

채집기 구현


  • 채집기가 자기 밑에 Scrapile 있는지 확인하고 Output 메서드 호출 ⇒ Mine 메서드
  • 조건 되면 Scrap y:-1 방향으로 생성 ⇒ Output 메서드
  • 위에 gif에 포함됨
profile
개발은삼순이발

0개의 댓글