3D Survival 게임 만들기 - TIL#30
(나머지 내용 보충 후 정리 예정)
Directional Light : Light 컴포넌트가 들어있음. 빛을 쏴주고 계산하는 것
Light 자체가 연산 자체가 비싸기 때문에 적절한 장소에서만 사용하자
폴더 Materials 생성 -> Material(오브젝트의 재질) 생성
Skybox 라고 명명, 구체 아니면 큐브 형태로 주로 사용함
Shader Standard -> Skybox/Procedual
이걸 적용하려면...
우측 하단 Auto Lighting 버튼
Environment -> Skybox Material -> Skybox 적용
Empty -> Player -> CameraContainer(플레이어의 눈 역할)
MainCamera를 CameraContainer의 자식으로 세팅, 그리고 Transform Reset
Player -> Capsule Collider, Rigidbody, PlayerController.cs -> Tag, Layer 모두 Player로 변경
Scripts -> Player -> PlayerController.cs 생성
Window -> Package Manager -> Input System
Input Actions -> 'Player Controls' Input Action 생성
Schema 없이 Player -> New action -> Vector2, wasd 방향 설정
Attack(Button) -> Left Button ...
Look(Value) -> Mouse delta(마우스가 움직인 만큼의 값)
Player Input -> Player에 넣기, Behavior 'Invoke Unity Events' (Unity에서 사용하겠다)
[HideInInspector] = Public인데 Inspector에서 가림
Start()에 Cursor.lockState = CursorLockMode.Locked; 커서 잠그겠다
FixedUpdate 물리적인 작업
LateUpdate 주로 카메라 작업
마우스 감도 설정
void CameraLook()
{
camCurXRot =+ mouseDelta.y * lookSensitivity;
camCurXRot = Mathf.Clamp(camCurXRot, minXLook, maxXLook);
cameraContainer.localEulerAngles = new Vector3(-camCurXRot, 0, 0);
tran ...
}
InputActionPhase의 기능
started = 눌렀을 때
performed = 누르고 있을 때
cancled = 뗐을 때
Impulse 질량을 가지고서 함
Ray 레이저 쏴서 충돌 체크
OnDrawGizmos Gizmos 그리기, Gizmos.DrawRay로 레이 그리기