복습
델리게이트 Delegate
함수를 변수에 저장하여 사용, 반환값,매개변수 지정필요
축약 델리게이트 Action<T> : 반환값X / Func<T,resT> : 반환값 = resT / Pridicate<int> : int매개 bool반환
DOTween
doLocalMove ( 도착좌표, 도착까지 시간).setEasy(그래프).onComplete( ( ) => { 함수 완료후 실행 할 내용 } )
SetEase(Ease.Linear) 그래프모양
============================================================
스카이박스SkyBox
게임내부 배경(경치)
박스형, 반원형 존재
Window - Rendering - Lighting - Environment 에서 스카이박스 설정가능
rigidbody forcemode
Raycast
Ray
new Ray(시작좌표,방향)
Camera.main.ViewportPointToRay(출발할 카메라상의 좌표) ==> 카메라 중심에서 출발
Camera.main.ScreenPointToRay(보통 마우스포인트 좌표)
Raycast 광선에 맞은물체 호출 및 검사, 기타등등
Ray 검사에 사용할 Ray
RaycastHit Ray에 맞은(검사된) 물체 저장 (구조체 데이터형)
RaycastHit.point 감지된위치
RaycastHit.Distance 출발좌표와 검사된 좌표 거리
RaycastHit.transform 검사된 물체 transform
MaxDistance 검사할 거리
LayerMask 검사할 레이어
InputSystem (유니티레지스트리에 포함된 패키지)
SendMessage방식
on+ActionName 인 함수를 찾아 호출하는 방식
Invoke Event
Inspector 상에서 함수를 설정하고 호출
Invoke C Sharp Event
설정하는 함수를 C# 스크립트에서 할당 (더 다양한 상황 함수 호출 가능)
스크립트
메서드 이름은 Send Messages 방식이라면 On+(inputSystem에서 정한 이름) 으로 꼭 맞춰야함
Invoke Unity Event방시이라면 맞추지 않아도 직접 할당할수있음
public void 메서드이름 (InputAction.CallbackContext 매개변수context)
{
if (context.started) { 버튼 눌리기 시작한 순간 실행할 내용 }
else if (context.performed) { 버튼 눌리는중 1번실행할 내용, 보통 started와 거의동시에 실행됨 }
else if (context.canceled { 버튼 떼진 순간 실행할내용 }
context.started ==> 이건 단축문이고 원본은 (context.phase == InputActionPhase.Started)
context.ReadValue<데이터형>(); ==> 입력값 신호 중에서 데이터형에 맞는 값을 읽어온다
}
방어코드
코드가 동작하지 않을 상황을 대비하여 예외상황에 대응가능하게 코드를 만드는것
Cursor.lockState
마우스커서 상태 조정, 3가지 상태 있음 Cursor.lockState = CursorLockMode.상태
.None (기본값) 마우스 커서 자유롭게 이동가능
.Locked (고정) 마우스 커서 중앙으로 고정, 마우스커서 모양 숨김
.Confined (창 내부 제한) 커서 보이고 움직이지만 창 외부로 나갈 수 없음
TryGetComponent<T>( out T component ) Where T : component;
반환값은 bool
T타입의 컴포넌트가 있다면 out (매개변수)component에 할당하고 true반환
없다면 component=null 에 false반환
where 은 T중 component를 상속받은 T만 호출하는 제한문, 생략가능
카메라 절두체
Coroutine코루틴
작업을 다수 프레임에 거쳐 실행하는 메서드
함수 내부의 작업을 한번에 다 실행하고 다음으로 순서를 넘기는것이 아닌
함수 내부 작업을 정해진 부분 진행후 작업순서를 넘기고 다음 작업순서가 자신에게 돌아왔을때 진행하던 부분에서 다시 진행하는것
yield return 중단지점 (여기서 중단, 다음루틴때 여기서 다시시작)
yield return null; 다음프레임에서 다시 진행
yield return new WaitForSeconds(시간) 입력 시간 후 진행
yield return new WaitUntill(( ) => 조건 )조건 만족될때까지 대기
랜더링끝날때까지대기, 다른코루틴 끝날때까지 대기 등등
ScriptableObject 클래스
유니티 제공 클래스
정확한 개념은 찾아봐야함
'Unity 본캠프 TIL' 카테고리의 다른 글
Unity 본캠프 TILUnity 본캠프 TIL (25/03/06) Chapter5 Unity숙련 3D프로젝트 3일차 (0) | 2025.03.06 |
---|---|
Unity 본캠프 TILUnity 본캠프 TIL (25/03/05) Chapter5 Unity숙련 3D프로젝트 2일차 (0) | 2025.03.05 |
Unity 본캠프 TIL (25/02/28) Chapter4 Unity입문 팀프로젝트 완결/ 델리게이트Delegate (0) | 2025.02.28 |
Unity 본캠프 TIL (25/02/25) Chapter4 Unity입문 팀프로젝트 / UI (0) | 2025.02.25 |
Unity 본캠프 TIL Chapter4 Unity 트러블슈팅 (0) | 2025.02.20 |