유니티 프로그래밍 기초 : 프리팹(Prefab)-2

이번 포스팅에서는 저번에 만든 프리팹을 생성시 프리팹의 속성을 변경하는것에 대해 알아보겠습니다. 같은 프리팹을 사용하더라도 생성시 속성을 변경하면 원본과는 다른 프리팹을 생성할 수 있습니다. 속성 그 자체는 같기 때문에 기본적인 틀은 같습니다.   1. 예문   기존 Update문 밑에 J, K, L에 반응하는 If문을 추가하였습니다. 스페이스바를 누를때마다 Instantiate로 boxPrefab에 담긴 프리팹을 매번 생성하게 되는데 이렇게 각각 … 더 읽기

유니티 프로그래밍 기초 : 프리팹(Prefab)-1

프리팹은 게임 오브젝트와 그에 속해있는 컴퍼넌트의 정보를 저장한 템플릿형태의 에셋파일입니다. 템플릿형태이기 때문에 같은 형태의 오브젝트를 여러번 반복해서 생성해야될 때 유용하게 사용됩니다. 간단하게 말하면 붕어빵 틀을 만든다고 생각하면 됩니다. 붕어빵을 손수 만들면 한두개야 정성스럽게 손으로 모양 잡아가면서 만들수야 있겠지만 그걸 수십, 수백개를 만들어야되면 매우 비효율적이게 되어 붕어빵 틀을 통해 붕어 모양으로 붕어빵을 손쉽게 만들 수 있습니다. … 더 읽기

유니티 프로그래밍 기초 : AddForce를 이용한 간단한 이동 구현

이번 포스팅에서는 저번에 포스팅한 AddForce를 이용해서 간단한 이동을 구현해보겠습니다. AddForce는 오브젝트에 물리적으로 힘을 가하는 방식으로 이동하기에 일반적인 이동방식과는 차이가 있습니다. 오브젝트를 밀고, 당기고, 쏘거나(곡사) 중력이 적용되는 상태에서의 점프, 레이싱게임의 캐릭터(자동차) 등에 사용할 수 있습니다.   1. 예문 1.1 직접 방향지정   이 스크립트는 Space키의 입력에 따라서 이 스크립트가 심겨진 오브젝트를 순간적으로 힘을 가하는 방식으로 이동시킵니다. … 더 읽기

유니티 프로그래밍 기초 : transform.Translate를 이용한 간단한 이동 구현

이번 포스팅에서는 저번에 포스팅한 transform.Translate를 이용해서 간단한 이동을 구현해보겠습니다. transform.Translate는 순간이동형 이동으로 물리적인 연산보다는 단순 이동에 관련된 부분에 사용합니다. 보드게임의 말의 이동이나 고전 탑뷰 RPG에서 캐릭터의 이동 등에 주로 사용됩니다.   1. 예문 1.1 WASD키 입력으로 X, Y에 값을 직접 넣기   이 스크립트는 방향키 WASD의 입력에 따라서 moveX, moveY의 값이 정해지면서 방향이 정해지고 그 … 더 읽기

유니티 프로그래밍 기초 : 키워드 자동완성 미적용 원인과 해결방법

이번 포스팅에서는 유니티에서 스크립트 작성시 키워드의 앞글자 몇자만 타이핑해도 유니티 키워드의 자동완성 목록이 나타나지 않는 부분을 해결하는 방법에 대해 알아보겠습니다. 보통 유니티에서 스크립트를 생성할 때 비쥬얼 스튜디오를 활용하게 되는데 특정 함수 등을 호출 할 때 앞글자 몇개만 입력시 자동완성 목록이 나타나지 않는 경우가 있습니다. 정확히는 자동완성 목록은 나오지만 유니티만의 키워드가 나타나지 않는 문제가 발생하곤 합니다. … 더 읽기

유니티 프로그래밍 기초 : 컴퍼넌트 참조 오류의 원인과 해결방법

이번 포스트에서는 잘못된 컴퍼넌트 참조로 인해 발생하는 오류에 대해 알아보겠습니다. 유니티는 오브젝트를 생성하고 그 오브젝트에 컴퍼넌트를 블록을 끼우듯이 필요한 기능만을 넣어서 사용을 합니다. 예를 들면 캐릭터의 이동에는 물리적인 동작이 필요하여 Rigidbody 컴퍼넌트를 넣어주지만 점수창에는 굳이 물리적인 연산이 필요 없기에 넣지 않습니다. 이렇게 필요한 컴퍼넌트를 오브젝트에 넣은 뒤에 스크립트 내부에서 참조하게 되는데 이 때 발생하는 오류에 … 더 읽기

유니티 프로그래밍 기초 : Syntax(문법) 오류의 원인과 해결방법

이번 포스팅에서 유니티에서 흔히 있는 Syntax(문법) 오류에 대해서 알아보겠습니다. 논리적인 부분에서 생기는 오류가 아니라 단순 오타나 누락으로 인해 생기는 오류이며 오류 내용에 무엇이 문제인지 알려주기에 해결이 쉽습니다.   1. 문법 누락 1.1 원인   문법이 누락된 경우입니다. 이 경우에는 코드를 실행하는 ;가 누락된 경우입니다. 오류의 내용은 스크립트의 11번째줄 26번째에 ;가 누락되었다는 것을 나타냅니다.      … 더 읽기

유니티 프로그래밍 기초 : 리스트

리스트는 배열과 같이 대량의 데이터를 하나로 묶어서 관리할 수 있는 콜렉션중 하나입니다. 배열에서는 데이터의 수정이 번거롭지만 여기서는 수정 및 데이터의 추가 제거, 크기 조절 등이 가능합니다.   1. 장점 동적 배열 : 유니티 리스트는 크기가 동적으로 변하기에 데이터의 추가 및 제거가 빈번한 곳에서 사용하기 용이합니다. 다양한 타입 지원 : 배열은 일반적인 C#의 자료형만을 담지만 유니티의 … 더 읽기

유니티 프로그래밍 기초 : UnassignedReferenceException 오류의 원인과 해결방법

  이번 포스팅에서는 UnassignedReferenceException(눌 참조)에 대해서 알아보겠습니다. Null은 참조타입들을 초기화하지 않을 시에 값이 없음을 말합니다. 값타입인 int, float, bool는 초기화를 하지 않을시 각각 0, 0.0f, false가 들어가지만 참조 타입은 Null이 들어갑니다. 참조타입에는 클래스(GameObject, MonoBehavior, Component), 델리게이트(메소드 참조), 배열(인덱스 참조), string 등이 있습니다.   1. 원인   위에서 언급한 참조타입 데이터를 초기화 하지 않아서 Null 상태일 … 더 읽기

유니티 프로그래밍 기초 : 배열의 IndexOutOfRangeException 오류의 원인과 해결방법

  오늘은 유니티로 흔히 발생하는 오류 문구중에 배열의 IndexOutOfRangeException 오류에 대해서 포스팅 해보겠습니다. 배열에 있는 데이터를 호출하려고 할 때 나타나는 오류로 호출한 인덱스가 배열의 범위를 벗어날 때 주로 나타납니다.   1. 원인   이 오류가 나타나는 이유는 배열에 값을 입력하거나 호출할 때 존재하지 않는 인덱스 번호에 값을 넣으려고 할 때 나타납니다. 주로 배열에 반복문을 비교조건을 … 더 읽기