Unity

    [Unity] Job 시스템 정의

    단일 작업 인터페이스 IJob Job 시스템이 사용하는 자료구조 NativeContainer Job 대기 핸들 (Handle) 동시에 여러개의 작업 IJobParallelFor 원리 멀티 스레딩 방식의 프로그래밍 기법이지만, 스레드를 별도로 생성하지 않는다. 유니티 내부에는 우리가 익숙하게 작업을 진행하는 메인 스레드와, CPU 코어 개수에 맞춰 월드의 변경사항을 적용하여 렌더링 할 준비를 해주는 작업자 스레드, 렌더링 과정을 처리하는 렌더 스레드가 존재한다. 이 중, 작업자 스레드에 작업을 지시할 수 있게끔 해준다. 장점과 단점 장점 빠르다. 메모리 절약된다. 유니티에서 제공하는 각종 스레드 안전장치를 사용할 수 있다. 유니티의 로직에 맞춰 돌아가므로 비교적 안정적인 프레임을 기대할 수 있다. 유니티가..

    [Unity] SQL 데이터 베이스 연동 SQLite

    1. Sqlite dll 다운로드 (1) 다운로드 사이트 : https://www.sqlite.org/download.html (2) Precompiled Binaries for Windows > sqlite-dll-win64-x64-xxxxxxx.zip 파일 다운로드 (3) Project(프로젝트) Assets 폴더 밑에 Plugins를 만든 뒤, sqlite3.def, sqlite3.dll 파일을 넣는다. 3. Mono.Data.xxx.dll 파일 복사. C:\Program Files\Unity\Hub\Editor\2019.x.xxf1\Editor\Data\Mono\lib\mono\2.0에서 Mono.Data.dll, Mono.Data.Sqlite.dll, Mono.Data.SqliteClient.d..

    [Unity] 안드로이드 플러그인 사용해보기

    우선 안드로이드 프로젝트를 만든다 empty Activity 또는 No Activity로 설정한다 다음 화면이다. 여기서 주의해야 할 것은 Minimum SDK 이다. 그 이유는 유니티에서도 Minimum SDK를 설정하는데 안드로이드 Minimum과 유니티 Minimum이 일치하지 않으면 오류가 생기게 된다. 유니티 프로젝트가 성공적으로 생성되고 gradle 파일들도 성공적으로 빌드되었다면 File -> New -> New Module로 들어가 모듈을 생성 해준다. 타입은 Android Library로 선택 모듈이 생성되면 androidTest, test 파일들이 같이 있으면 중복으로 오류가 생길 수도 있으므로 지워주자. 생성된 모듈에 클래스를 생성해주자. 일단 test_String으로 생성. 아래의 ..

    [Unity] 트랜스폼을 이용해서 AI 만들기

    Look At을 이용하면 게임 오브젝트의 앞 방향이 Look At에서 지칭하는 오브젝트를 바라본다. Transform 형식의 변수를 이용하고 transform.LookAt(Transform 변수)를 이용해 변수 오브젝트의 위치를 바라보라고 명령을 내리게 된다. 다른 메쉬에 적용했을 시 출처 : https://young-94.tistory.com/13

    [Unity] 셰이더 Shader

    정의 Unity 자체 쉐이더 언어인 ShaderLab과 CG(C for Graphics)를 함께 사용 하는 방식의 쉐이더이다. 기본적인 라이트, 버텍스 쉐이더의 복잡한 부분은 자동으로 처리된다. 즉 Matrix연산이 필요 없다. 스크립트 방식의 쉐이더지만 비주얼 쉐이더 에디터와 비슷한 개념을 가지고 있어 쉽다. Surface Shader 만들기 Project창에서 Create->Shader->Standard Surface Shader를 선택하여 쉐이더 파일 1개를 생성한다. Unity에서 Shader파일을 만드는 메커니즘은 맨 좌측 사진처럼 최초 Shader파일을 만들때 설정한 이름이 중앙 사진처럼 Shader의 기본 이름으로 설정된다.(스크립트 수정으로 이름 바꾸기 가능) 그리고 우측에 실제 마테리얼에..

    [Unity] EventSystem을 이용해 아이템UI 드래그 및 다른 슬롯에 등록하기(IDragHandler, IDropHandler)

    드래그, 드랍할 UI오브젝트에 Drag관련 인터페이스가 포함된 스크립트를 추가 public class ItemDragHandler : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler 그리고 인터페이스에 해당하는 함수를 구현해주면 된다. 드래그해서 마우스를 따라다니게 하고 싶으므로 IDragHandler의 OnDrag함수를 구현해주면 된다. public void OnDrag(PointerEventData eventData) { transform.position = eventData.position; } 참고로 eventData.position 말고 Input.mousePosition 을 써도 된다. 아이템을 놓았을 때 제자리로 돌아가게 하고..