MeshCollider
- 정해진 모양이 아닌 메쉬에 맞춰서 그려지는 콜라이더다.
- 정교하진 않고 메쉬의 형태만 맞춘다.
- 사용 안하는것을 추천한다.
라이트 맵
- 유니티는 라이팅 데이터 에셋을 사용하여 라이팅 효과의 실시간 연산량을 줄이며, 씬에 변화가 감지될 때마다 매번 새로운 라이팅 데이터 에셋을 생성한다.
- 안움직이는 빛을 기준으로 계산하여 렌더링하는 것이다.
- 안움직이는 오브젝트 구별 방법 : 오브젝트 클릭 - 우측 상단 static 체크 확인
- static : 움직이지 않는 오브젝트에 체크하면 움직이지 않게되는 옵션이다.
- 빌드하기 전 에디터 단계에서 만들어지는 에셋이다.
- 조금 더 선명하게 그려지는 효과가 있다.
- 생성 방법
- window - Rendering - Lighting
- new를 누르면 현재 씬의 라이트 정보가 자동으로 담겨진 에셋이 생성된다.
- 하단의 Generate 버튼 클릭
- 이 라이트 맵 에셋에 라이트, 스카이박스같은 환경 정보 등 씬의 환경 정보들이 저장된다.
Directional Light
- 보통 빛은 각도와 감도에 따라 ‘감쇠’가 일어나지만, Directional Light는 모든면에 동일한 빛이 쬐여지기 때문에 감쇠가 일어나지 않는다.
최적화
- SuperSampling, DLSS 같이 최적화에 도움을 주는 툴이 있다.
- SuperSampling은 비싸고, DLSS는 저렴하다.
FBX 모델
- 3D 캐릭터 모델 파일이다.
- 애니메이션이 들어있는 fbx 모델도 있고, 기본 born만 있는 fbx 모델도 있다.
- Animation Type : 애니메이션의 뼈대를 움직이는 타입 설정이다.
- Generic : 현재 fbx 모델만 움직일 수 있는 고유 애니메이션만 움직이는 타입이다.
- Humanoid : 인간형태의 모델 애니메이션을 움직일 수 있는 타입니다.
- 리깅이 잘못되어있다면 모델에 구멍이 나있거나 하는 경우도 있으니 확인을 잘 해야한다.
- 아바타 확인 방법
- 모델 클릭 - Avatar 아이콘 에셋 클릭
표준 애니메이션
- 어떤 모델로 쓰든 같은 애니메이션이 작동할 수 있도록 표준 fbx 모델을 사용한 애니메이션이다.
- born : 캐릭터를 움직이는 뼈대다.
- 애니메이션 키 프레임으로 born을 잡아서움직이는 것이다.
Animator 설정
- Animate Physics : 애니메이션에 물리적 설정을 줄 수 있게하는 옵션이다.
- 애니메이션 Parameter에 Id를 주고 스크립트에서 파라미터값을 지정할 수도 있다.
블랜드 트리
- 하나의 상태로 여러 애니메이션을 전환하며 사용하는 상태다.
- 생성 방법
- Animator - 우클릭 - New Blend Tree
- 파라미터를 통해서 애니메이션 전환이 가능해진다.
Animation Layer
- 애니메이션의 부위를 동시에 써야하는 경우 사용하는 기능이다.
- 본을 Mask를 통해 구분해서 여러 애니메이션을 동시에 동작하게 된다.
- Weight : 현재 레이어에서 재생되는 애니메이션을 Mask로 설정된 born에 얼마나 적용할지 설정하는 옵션이다.
- 1이라면 현재 레이어의 애니메이션을 Mask의 born에 100% 적용한다는 의미이다.
빈 애니메이션
- 현재 레이어에 빈 애니메이션 상태로 들어가게 된다면, base 레이어의 같은 조건의 상태로 가게된다.
rigidbody 설정
- Mass : 오브젝트의 상대적인 질량을 의미한다.
- Damping : 저항을 의미한다.
- 물리적인 저항을 받을 때 추가 또는 감소하는 추가 값이다.
- Linear Damping : 선형 저항
- Angular Damping : 회전 저항
플레이어 이동
- 이동 방법 - Transform position 값 변경 / RigidBody Velocity 값 변경
- 차이점 : 충돌검사 - 물리 업데이트 주기에 맞춰서 충돌 검사 한다.
- Rigidbody가 물리 업데이트때 값이 변경된다.
- Transform으로 이동을 하게되면 충돌과 상관없는 이동이 보이게 된다.
- Update에서 충돌 검사를 하게되면 충돌이 뚫렸다가 다시 충돌보정됬다가 왔다갔다를 반복하게 된다.
- Update : 일반 렌더링 업데이트 / FixedUpdate : 물리 업데이트 렌더링
- Update : 충돌과 관련 없이 일어나게 된다.
- Time.deltaTime를 FixedUpdate에서 쓰게되면 Update와 별개로 FixedUpdate의 프레임 시간이 반환된다.
moveDir.x = rb.position.x + (input.Rot * moveSpeed * Time.deltaTime);
moveDir.z = rb.position.z + (input.Move * moveSpeed * Time.deltaTime);
rb.MovePosition(moveDir);
시네머신
- 여러 카메라를 사용할 수 있게 하고, 여러 움직임을 줄 수 있는 컴포넌트다.
- GameObject - Cinemachine에서 생성할 수 있다.
Virtual Camera
- 메인 카메라를 담당하는 가상의 카메라 오브젝트다.
- Follow : 할당한 게임 오브젝트를 카메라가 따라가게되는 옵션이다.
- LookAt : 할당한 게임 오브젝트의 forward와 같은 방향을 보게되는 옵션이다.
- Body :
- Aim : 타겟 오브젝트 오프셋 설정 옵션이다.
Line Renderer
- 라인을 그리는 컴포넌트
- Size : 발사체의 기준점을 찍을 수 있다.
- 여러개 생성할 수 있다.
- 지그재그처럼 point 생성도 가능하다.
Particle System
- 이펙트를 렌더링하는 컴포넌트다.
- 이펙트는 코드에서 Play를 해야한다.
IEnumerator
- 반복자 함수다.
- yeild return을 반드시 반환해줘야한다.
- 반환하기위해 코드 순회를 일시정지하고 반환이 끝나면 일시정지한 곳에서 다시 시작한다.
- 비동기 흐름을 만들어낼 수 있다.
- 동기 : 다른곳에서 10동안 일을 한다면 10동안 기다려야한다.
- 비동기 : 다른곳에서 일을 하든 말든 작업하다가 다른곳이 준 값을 가지고 다시 돌린다.
코루틴
- 조건이 맞을때까지 반복자 안의 작업을 일시정지하고, 조건이 끝나면 일시정지한곳에서 다시 시작하는 기능이다.
private IEnumerator CoShotEffect(Vector3 hitPosition)//hitPosition : 끝점
{
audioSource.PlayOneShot(gunData.shootClip);
muzzleEffect.Play();
shellEffect.Play();
lineRenderer.enabled = true;
lineRenderer.SetPosition(0, firePosition.position);
lineRenderer.SetPosition(1, hitPosition);
yield return new WaitForSeconds(0.2f);
//Debug.Log("End");
lineRenderer.enabled = false;
}
'공부 > Unity' 카테고리의 다른 글
| Slider, Model 크기 변경, Item (5) |
2025.08.26 |
| 스크립터블 오브젝트, 총알 발사, IK (5) |
2025.08.26 |
| 발판 생성, 사운드, Audio Source (4) |
2025.08.25 |
| 애니메이션 (0) |
2025.08.25 |
| 벡터 기본, 벡터 내적, 벡터 외적, 쿼터니언, 짐벌락, Sprite, Animator, Animation, Animation Clip (6) |
2025.08.19 |