목록분류 전체보기 (58)
시작은 0부터
Raycast : 보이지 않는 광선을 쏘고, 그 광선이 다른 콜라이더와 충돌하는지 검사하는 원리. 충돌 검사를 하는 광선을 Ray라고 한다. Raycast 메서드는 다양한 형태로 입력받을 수 있다. Raycast(Vector3 origin, Vector3 direction, out RaycastHit hitInfo, float maxDistance); Vector3 origin : 레이의 시작점 Vector3 direction : 레이의 방향 RaycastHit hitInfo : 레이가 충돌한 경우 hitInfo에 자세한 충돌 정보가 채워진다 float maxDistance : 레이의 충돌을 검사할 최대 거리 out 키워드로 입력된 변수는 함수 내부에서 변경된 사항이 반영된 채 되돌아온다.
Lightmap : 오브젝트가 빛을 받았을 때 보이는 텍스쳐를 미리 그려둔 것. 큐브에 광원효과를 내는 빛이 있다면, 실제로 그 빛이 광원효과를 내는 것이 아니라 라이트맵이 광원효과를 낸 것처럼 텍스쳐를 덧씌우는 것. Environment Lighting : 씬에 가장 기본으로 깔리는 빛. 모든 게임 오브젝트에 적용되며, 모든 방향에서 같은 세기로 들어오기 때문에 그림자나 명암을 만들지 않음. 게임 전체 색을 조정. Animator Layer : 애니메이터 컨트롤러에서 레이어를 나누어 한 오브젝트의 애니메이션 상태가 동시에 2개 이상 중첩되게 할 수 있는 시스템. 예를 들어 하나의 오브젝트 안에 애니메이터 레이어가 상체, 하체 2개가 있다면 걷기 + 공격 동작을 할 때 하체는 걷기 동작을 하면서 동시에 ..
Matrix4x4행렬의 구조는 다음과 같다. 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 위 3줄은 회전도를 나타낸다. 맨 아래줄은 위치를 나타낸다. 위 행렬에 자신의 좌표(x,y,z)를 곱해주면 로컬좌표가 된다. transform.lossyscale : 글로벌값을 기준으로 한 scale 값. 절대크기. transform.localscale : 부모의 값을 기준으로 한 scale 값. 상대크기. TRS Transform, Rotation, Scale 을 나타낸다.
Prefab Veriant : 프리팹을 상속받는 프리팹 생성. A라는 프리팹의 베리언트 B를 생성하면 B라는 프리팹(베리언트)가 생성되고, 이 프리팹은 부모 격인 A 프리팹이 바뀌면 같이 바뀌지만, B자식 격인 자신(B) 프리팹을 바꿔도 A의 프리팹은 바뀌지 않는다. 이 원리를 이용해 A라는 프리팹의 베리언트를 여러개 생성하면 각각의 베리언트들은 독립적으로 수정되고 서로 영향을 미치지 않지만 부모인 A 프리팹을 수정하면 모두 영향을 받게 된다. Animator Override Controller : 기존의 애니메이터 컨트롤러를 덮어쓰는 컨트롤러. Controller 안에 기존의 애니메이터 컨트롤러를 넣으면, 해당 컨트롤러 내부에 설정되어있는 애니메이션들이 Original 칸에 나온다. Override 칸..
git 을 설치하고 git bash를 실행하면 콘솔창이 켜진다. git init repository를 생성한다. repository 는 깃과 연동할 저장공간 개념이다. git config --local user.name "사용자 이름" 사용자의 이름을 지정한다. git config --local user.email "이메일 주소" 사용자의 이메일을 지정한다. git status 깃의 현재 상태를 확인한다. 깃은 세가지의 상태로 나뉜다 1.Staged : 스테이지 영역에 파일을 추가하여 커밋할 스냅샷을 만든다. 모든 파일을 추가할 수도 있고 선택하여 추가할 수도 있는 단계. 2.Modified : 작업 디렉토리에서 파일이 수정된 상태 3.Committed : 스테이지 영역에 있는 파일들을 커밋해서 Git ..
Animation Event : 유니티 애니메이션 프레임에 함수를 호출할 수 있는 기능이다. 특정 애니메이션에만 어떠한 이벤트를 처리하고 싶을 때 사용할 수 있다. 메탈슬러그 모작 만들기를 시도하고 있는데, 구글링으로 구한 리소스파일이 간격이 일정하지 않아 스프라이트가 프레임마다 위치를 다르게 조정해야 위치가 맞는 문제가 생겼다. 처음부터 간격이 맞는 리소스를 구하는게 제일 완벽하겠지만 구하지 못해서 안맞는 리소스 파일을 수정해서 간격을 맞추려고 포토샵으로 노가다를 했지만 시간투자대비 진전이 너무 없는 것 같아서 차라리 포토샵 노가다가 아닌 유니티 노가다로 위치값을 조정해보았다. 프레임마다 위치값이 안맞아서 캐릭터가 사방팔방 튀어서 각 프레임마다 애니메이션 이벤트로 올바른 위치값으로 이동시켜주는 함수를 ..
2D 플랫포머 게임 중 생성된 플랫폼 위에서 좌우로 움직이는 장애물을 만들 때, 장애물이 플랫폼 안에서 좌우로 움직이지 않고, 이상한 곳에서 왔다갔다하는 문제가 생겼는데 범위 제한 값을 position으로 줘서 발생한 문제였다. transform 내부 기능 중에 있는 position 과 localposition은 각각 절대위치와 상대위치다. 이전 시간에 배웠던 부분인데 까먹었다 동기형이 알려줘서 다시 정리한다. 절대위치(position)은 씬 내부에 있는 실제 위치값을 나타내고, 상대위치(localposition)은 자신의 위치를 기준으로 위치값을 나타낸다. 부모 오브젝트 안에서만 좌우로 움직이는 자식오브젝트의 경우 상대위치값을 받아야 부모 오브젝트가 실제위치 어디에 있든 정해진 공간에서 움직일 수 있다..
RigidBody 기능 중에는 Freeze 기능이 있다. Position 과 Rotation이 있는데 Freeze 를 체크하면 '물리적 힘'에 의해서 값이 변하지 않도록 고정시키는 역할을 한다. 즉, rigidbody.AddForce() 나 rigidbody.velocity 같은 물리적 이동에 의해서는 고정 값이 변하지 않지만, transform.Translate 와 같은 transform을 이용한 위치 이동은 고정할 수 없다. 유니티에서는 멤버변수를 public으로 선언하면 자동으로 유니티 내부에서 컴포넌트에 해당 변수를 제어하는 칸이 생성되어 스크립트창을 열지 않고도 값을 입력할 수 있다. 그런데 이때 입력한 값이 스크립트상에서 입력한 값보다 우선적으로 작용하여 스크립트에서 아무리 변수 값에 변화를 ..