마우스 클릭을 이용한 오브젝트 상호작용

1. 다른 스크립트에서 사용할 IMouseInteraction 인터페이스 (MouseInteraction.cs)

image.png

2. 마우스 클릭을 감지할 MouseInteraction 함수 (MouseInteraction.cs)

Ray를 이용해 마우스 위치를 화면의 좌표로 받아오고
RaycastHit로 해당 좌표의 IMouseInteraction을 가지는 충돌체들을 받아와
매개변수로 설정된 Action 실행.

Ray를 이용해 마우스 위치를 화면의 좌표로 받아오고 RaycastHit로 해당 좌표의 IMouseInteraction을 가지는 충돌체들을 받아와 매개변수로 설정된 Action 실행.

3. 좌클릭, 우클릭에 해당하는 함수 실행. (MouseInteraction.cs)

위 인터페이스를 사용하여 채집, 벌목 등 마우스 상호작용에 필요한 컨텐츠 수행.

위 인터페이스를 사용하여 채집, 벌목 등 마우스 상호작용에 필요한 컨텐츠 수행.

낚시 컨텐츠

1. 캐치바 이동 (Fishing.cs)

Input.GetMoustButton 으로 좌클릭을 누르고 있는 상태에서
슬라이더의 Value값을 Time.deltaTime을 이용해 계속 변하게 하고,
Input.GetMouseButtonUp으로 좌클릭을 놓는 순간 낚시 성공 여부 판단.

Input.GetMoustButton 으로 좌클릭을 누르고 있는 상태에서 슬라이더의 Value값을 Time.deltaTime을 이용해 계속 변하게 하고, Input.GetMouseButtonUp으로 좌클릭을 놓는 순간 낚시 성공 여부 판단.

2. 낚시 성공 여부 판단 (Fishing.cs)

image.png

image.png

슬라이더의 maxValue와 캐치포인트 UI의 offestMax, offsetMin을 통해
슬라이더 내의 랜덤 구간에 캐치 포인트를 생성하고,
좌클릭을 놓는 순간 슬라이더의 value가 캐치 포인트 구간의 위치와 동일하다면 성공,
동일하지 않다면 실패.

슬라이더의 maxValue와 캐치포인트 UI의 offestMax, offsetMin을 통해 슬라이더 내의 랜덤 구간에 캐치 포인트를 생성하고, 좌클릭을 놓는 순간 슬라이더의 value가 캐치 포인트 구간의 위치와 동일하다면 성공, 동일하지 않다면 실패.

테이밍 컨텐츠

1. 케이지 UI가 마우스 위치에 위치하게 하기. (TamingMouseUI.cs)

RectTransformUtility.ScreenToLocalPointRectangle을 이용해
마우스의 위치를 캔버스 내의 recttransform의 위치로 변환하여
해당 위치에 케이지 UI가 위치하도록 설정.

RectTransformUtility.ScreenToLocalPointRectangle을 이용해 마우스의 위치를 캔버스 내의 recttransform의 위치로 변환하여 해당 위치에 케이지 UI가 위치하도록 설정.

2. 마우스와 매의 오버랩을 통한 게이지 조절. (TamingMouseUI.cs)