물건집기
public abstract class ActiveItem : MonoBehaviour
{
public abstract void MouseLeftClick();
public abstract void MouseRightClick();
}
transform 으로 인자 받기..
1인칭 기준, INPUT SYSTEM 이용해서 wasd 로 이동, delta 카메라 회전
왼쪽마우스 버튼 클릭시,
특정 물건에 레이케스트쏴서 거리, 레이어체크
몸안쪽으로 가져오기, 들고다니다가 오른쪽 버튼 클릭시 놓는다. 약간 앞으로
어떤 물체는 오른쪽 버튼 클릭시 크로스헤어 방향으로 던진다.
마우스 왼쪽, 오른쪽 클릭시 매개변수- > 이벤트로 받아서, 작동하게? 매개변수 간략하게 리펙토링하려면...뭘 받아야하지?
위치값? 레이케스트?
기획:
물건을 들어서 지정된 위치에 올려다 놓으면 문이 열린다, 로테이션값이나 슬라이딩이라면 한 축의 MOVE값 그래서
열리도록... 보통 경첩이 있고 문이 회전해서 열리도록 처리..
물건을 들어서 지정된 위치에 올려다 놓으면 해당 오브젝트의 힘과방향이 작용해서, 위로 엘리베이터를 올린다.
물건을 들어올려서 놓으면 발사 한다. -폭탄으로 부술 수 있음 -> 분해된 상태로 만들어줌. -> 시간으로 수복기능 -> 해당기획은 후순위
playerCamera = Camera.main;
말그대로 tag에 mainCamera라고 되어있는 켜져있는 가장 첫번째 카메라 컴포넌트를 가져온다.
해당 부분을 Awake부분에 연결해놓으면, 해당 컴포넌트와 의존성이 성립한다.
transform.rotation = Quaternion.Slerp(start, end, t);
Slerp는 start에서 end 앵글까지 t초 동안 부드럽게 회전해서 보간되도록 만들어준다. 매개변수는 쿼터니언값이 들어간다
Vector3로 하는 angle 값이 있으면 된다.
Ray ray = playerCamera.ScreenPointToRay(Mouse.current.position.ReadValue());
Mouse.current.position.ReadValue() 이것은
Input System에서 현재 마우스 커서의 화면좌표인(픽셀좌표) vector2 좌표를 가져온다.
화면 왼쪽 위가 (0,0), 오른쪽 아래가 (Screen.width, Screen.height)인 좌표계에서,
현재 프레임의 마우스 위치를 반환
따라서, 해당 ray는 카메라위치에서 시작(origin) 해서 매개변수로 받은 스크린상의 해당 픽셀 방향(direction)으로 가리킨다.
즉 카메라의 위치, playerCamera.transform.position에서 마우스가 가리키는 지점(Mouse.current.position) 으로
뻗어가는 단위 벡터이다.
Mouse.current.position 자체는 마우스의 위치를 나타내는 컨트롤 인스턴스로
.ReadValue()로 지금 이순간의 값을 꺼내와야 Vector2로 좌표를 가진다.
헷갈리면안되는게, playerCamera.transform.position은 카메라의 transform에 접근해서 현재의 position값 vector3로 알려주는것이다.
Quaternion 시리즈
Quaternion.Angle(transform.rotation, target); -> 두개의 쿼터니언각도 사이의 각도를 돌려줍니다.
Quaternion.Euler(0,0,0); 각축의 각도 degree값 돌려줍니다.
Quaternion.AngleAxis(angle, axis.noramlized); 돌릴각도와 축을 통해 돌려줍니다. 축의방향만 필요하니까, 정규화한다.
'Unity 개발 공부' 카테고리의 다른 글
| [내배캠] 본캠 51 시네마신, UniTask (1) | 2025.06.18 |
|---|---|
| [내배캠] 본캠 45 문법 복습(컴포넌트찾기) , 코드 최적화 (2) | 2025.06.10 |
| [내배캠] 본캠 34일차. 3d 작업시 트러블슈팅 (0) | 2025.05.23 |
| [내배캠] 본캠 26일차. 스킬 선택창, 스킬 UI 씬에 띄우기, 컨테이너 (1) | 2025.05.13 |
| [내배캠] 본캠 23일차. 싱글턴, 패턴매칭 (0) | 2025.05.09 |