유니티 패키지를 Assets 폴더에 드래그 앤 드롭 -> Import유니티 패키지를 가져와서 사용하면 개발을 할 때 매우 편리하게 이미지나 폰트를 가져와 사용할 수 있을 것 같다.1) 새로운 씬 만들기"Scenes" -> Create -> Scene2) 더블 클릭으로
Hp bar 를 만들고 싶은 캐릭터에 UI -> Image 생성Canvas 의 Render Mode 를 World Space 로 변경(캐릭터 아래에 Hp bar 를 붙여주기 위해)Canvas 의 Rect Transform 조절 (원하는 Hp bar 크기)Image 의
팀원들과 개발 환경을 맞추기 위해 다른 버전의 에디터를 다운 받는데 설치가 되지 않는 문제 발생.내가 원하는 에디터 버전을 아카이브에서 직접 다운하여 사용이 가능하다.하지만 한 두번은 하더라도 계속 아카이브에서 다운하거나 추가적으로 모듈을 설치할 때 매우 불편하다.경로
Prefab을 GameManager 스크립트에서 Instantiate 하고 Destroy 시키려고 코드를 작성하고 실행하니 오류가 발생하였다.오류의 원인을 살펴보니 Destroy(prefab.gameObject)에서 prefab.gameObject는 금방 생성한 게임
게임 종료 시 남은 게임 시간을 멈추기 위해 해당 코드로 게임 시간을 멈추니 Animator를 동작시키고 싶은데 같이 멈춰버린다.Time.timeScale은 유니티 자체의 시간을 관리해서 0으로 하면 동작중인 Animator도 멈춘다.게임이 종료될 때해당 코드로 남은
1. MonoBehaviour 유니티의 스크립트는 대부분 MonoBehaviour를 상속 받는다. 상속 받는 클래스들은 유니티 이벤트 함수를 활용할 수 있다. 게임 오브젝트의 생명 주기 동안 호출되는 특정한 메서드들의 순서와 타이밍 게임 오브젝트의 생성, 초기화, 업데
SO는 클래스 인스턴스와는 별도로 대량의 데이터를 저장하는 데 사용할 수 있는 데이터 컨터이너다.값의 사본이 생성되는 것을 방지하여 프로젝트의 메모리 사용을 줄이는 장점이 있다.프리팹을 인스턴스화할 때마다 SO를 이용하여 데이터를 저장한 후 모든 프리팹의 레퍼런스를 통
오브젝트 풀링은 객체를 미리 생성해 두고 필요할 때 가져다 사용하고, 사용이 끝나면 다시 풀에 반납하는 방식을 말한다.오브젝트 풀링은 생성(Instantiate)과 소멸(Destroy)이라는 비용이 큰 작업을 최소화함으로써 성능을 향상시키는 데 중요한 역할을 한다.이는
메인 카메라 오브젝트를 플레이어 오브젝트에 상속시키기코드를 작성해서 메인 카메라가 플레이어를 따라가게 하기먼저, 1번 방법은 메인 카메라는 많은 곳에서 사용하기 때문에 프로젝트를 진행할 수록 많은 버그를 유발할 수 있기 때문에 사용하지 않았다.그래서 2번 방법으로 진행
사용자의 입력을 받을 수 있다.Placeholder: 사용자에게 입력 받기 전 출력되는 textText: 사용자에게 입력 받는 textTextMeshPro를 사용하니 주의하자!
작업을 다수의 프레임에 분산하는 메서드.코루틴은 쓰레드가 아니다.코루틴은 동기!함수는 한 번 들어오면 끝까지 실행하고 반환하지만 코루틴은 도중에 원하는 시점에서 반환하고 다시 진행하던 부분 부터 진행시킬 수 있다.그래서 눈에 보일 땐 동시에 실행되는 것 같아서 비동기식
TextMeshPro는 Unity의 UI 텍스트와 레거시 텍스트 메시를 완벽하게 대체하는 텍스트 솔루션이다.뛰어난 사용성을 자랑하지만 그냥 한글을 사용하면 한글이 깨져서 나온다.한글을 사용하기 위해 폰트를 만들어줘야 한다.Window -> TextMeshPro -> F
InputSystem 사용 LateUpdate: _canLook이 true면 CameraLook 실행 OnLookInput: 마우스가 움직일 때마다 _mouseDelta 값을 받아온다 CameraLook: _camCurXRot: 마우스의 상하 움직임을 받는다
\_image: UI->Image 전체화면을 채우는 투명하고 붉은 이미지flashSpeed: 깜빡이는 속도Flash: 이미 실행중인 코루틴이 있으면 멈춘다. 이미지를 켜고 코루틴 실행FadeAway: 이미지의 알파값을 조절하여 화면이 붉게 깜빡이는 것을 표현.\_ima
저장하고 싶은 데이터를 모아 하나의 클래스로 만든다.꼭 System.Serializable 을 붙여 직렬화 하기!직렬화 했던 타입으로 역직렬화데이터 저장 경로를 임의로 정해주면 위험하다.Application.persistentDataPath: 유니티에서 제공하는 기능으
스크립트 작성 시에는 주석에 한글을 쓰면 정상적으로 출력이 되는데, 유니티 내부에서 코드를 보거나 깃으로 팀원과 협업을 할 때 코드를 보면 한글이 깨져서 나오는 경우가 있다.인코딩 방식이 달라서 한글이 깨지는 것이었다.다른 이름으로 저장이 방식으로 하면 스크립트 파일
싱글톤을 여러군데에서 사용할 때 유용하다GameManager, SoundManager, CharacterManager ...싱글톤을 제네릭 형태(T)로 작성 해놓고 싱글톤이 필요한 클래스에서 상속받으면 돼서 간편하다.where T : MonoBehaviour: T가 M
Unity 기본 개념 및 생명주기(1)
Unity 기본 개념 및 생명주기(2)
먼저, 커스텀 에디터를 제작하게 된 이유는 게임을 테스트하는 과정에서 시간이 오래걸리는 작업의 속도를 올리기 위해서이다.예를 들어, RPG 장르의 게임인 경우에 레벨을 올리는데 많은 시간이 필요하다. 이때, 커스텀 에디터를 제작하여 테스트를 위한 커스텀 창을 만들어 레