분류 전체보기(158)
-
스프라이트 아틀라스 사용방법
프로젝트를 만들때에 다수의 텍스처 파일이 들어 있을 수 있고, 일반적으로 Unity는 씬의 각 텍스처에 대해 드로우 콜을 발행한다. 하지만 많은 텍스처가 포함된 프로젝트의 경우 여러 개의 드로우 콜이 존재하면 리소스를 많이 소비하여 프로젝트의 성능을 저하시킬 수 있다. 그래서 사용하는 방법이 스프라이트 아틀라스를 사용하는 것이다.스프라이트 아틀라스 란?- 여러 개의 텍스처를 단일 텍스처로 결합하는 에셋이다. Unity는 여러 개의 드로우 콜을 발행하는 대신 이러한 단일 텍스처를 호출함으로써 하나의 드로우 콜을 발행할 수 있다. 그러면 큰 성능 소모 없이도 패킹된 텍스처에 동시에 액세스할 수 있다.생성방법Resources파일에 Sprite Atlas를 생성(Create -> 2D -> Sprite Atla..
2024.12.13 -
3D 오브젝트 아이템 아이콘 만들기
초기 세팅 해당 화면처럼 UI생성카메라 촬영하는게 흰색 UI에 띄우게 하기 위해서 Render Texture를 생성 후 메인카메라에 부착 및 UI에도 Texture 에 Render Texture를 넣어주면 카메라에 찍는 화면에 흰색 바탕에 나오게 된다. 그리고 캡쳐될때 뒷배경의 색깔은 카메라의 바탕색으로 바뀌기 때문에 그거를 조절해서 아이템의 등급에 따라 색을 나눠주면 된다.밑에 코드를 작성해서 CaptureManager에 부착시킨후 사용하면 된다.using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;using System.IO;public enum Grade{ Normal, ..
2024.12.12 -
면접 질문 / 확장 메서드에 대해 설명하고 어떻게 활용했는지 알려주세요. / 콜백이란 무엇인가요? 콜백을 사용해본 경험이 있을까요?
질문 : 확장 메서드에 대해 설명하고 어떻게 활용했는지 알려주세요. - 확장 메서드는 기존 클래스에 새로운 메서드를 추가하는 것처럼 사용할 수 있도록 해주는 기능입니다. 원래 형식을 수정하거나 새로 상속받지 않아도 되고, 정적 메서드 형태로 정의되지만 인스턴스 메서드처럼 호출됩니다. 대표적인 예로 LINQ에서 제공하는 OrderBy, Where 같은 메서드가 있습니다.질문 : 콜백이란 무엇인가요? 콜백을 사용해본 경험이 있을까요?- 콜백은 특정 작업이 끝난 후 호출되는 함수나 메서드를 의미합니다. 주로 비동기 작업에서 작업 완료 후 실행할 로직을 지정하는 데 사용됩니다. Unity에서는 이벤트 시스템, 생명 주기 함수, 델리게이트 등을 통해 콜백을 자주 활용합니다. 예를 들어, 버튼 클릭 이벤트에 대한 ..
2024.12.11 -
면접질문 / 객체지향 프로그래밍의 속성 중 하나인 다형성과 이를 활용한 설계의 장점에 대해 설명해주세요 / override와 overload에 대해 설명해주세요.
질문 : 객체지향 프로그래밍의 속성 중 하나인 다형성과 이를 활용한 설계의 장점에 대해 설명해주세요- 다형성이란 어떤 객체의 속성이나 기능이 상황에 따라 여러 가지 형태를 가질 수 있는 성질을 의미합니다. 다형성을 활용한 설계의 장점으로 첫번째 코드의 재사용성 증가 입니다. 부모 클래스의 코드를 상속받아 재사용하면서, 자식 클래스만의 고유한 기능을 추가할 수 있습니다. 두번째로 유지보수 용이성 입니다. 코드가 변경되더라도 공통 인터페이스나 부모 클래스의 메서드를 통해 일관된 동작을 보장할 수 있습니다. 세번째로 확장성 입니다. 새로운 타입(자식 클래스)을 추가하더라도 기존 코드를 크게 수정하지 않아도 됩니다. 마지막으로 유연한 설계 입니다. 다형성을 통해 객체의 실제 타입에 관계없이 동일한 인터페이스로 ..
2024.12.10 -
면접질문 / SOLID 원칙에 대해 설명해주세요
질문 : SOLID원칙을 설명해주세요1. SRP (단일책임의 원칙)- 하나의 클래스는 단 하나의 기능만 가져야 한다.2. OCP (개방폐쇄의 원칙)- 소프트웨어는 확장에는 열려있고, 수정에는 닫혀 있어야 한다.3. LSP (리스코브 치환의 원칙)- 하위 클래스는 상위 클래스의 행위를 대체할 수 있어야 한다.4. ISP (인터페이스 분리의 원칙)- 하나의 클래스는 자신이 사용하지 않는 기능에 의존하지 않아야 한다.5. DIP (의존성역전의 원칙)- 고수준 모듈(상위 레벨)과 저수준 모듈(하위 레벨)이 모두 추상화에 의존해야 한다.
2024.12.09 -
UI Button에 OnClick 코드로 관리하는 방법(AddListener)
기존에 UI Button에 있는 OnClick에 함수를 할당할때에는 드래그엔드롭을 통해 함수를 할당해 줬는데 이번에 사용할 방법은 코드로 함수를 할당해 주는 방법으로 해볼것이다. 필드 정의[SerializeField] private Button equipment;[SerializeField] private Button consumption;[SerializeField] private Button misc;- 드래그 앤 드롭 방식으로 Unity 에디터에서 해당 버튼들을 연결할 수 있다.함수 정의(AddListener)private void ButtonInitialize(){ equipment.onClick.AddListener(() => Refresh(ItemType.Equipment)); co..
2024.12.06