Gemini 제미나이 실습1
게임이 시작되면 게임오브젝트가 사라지는 스크립트 'hide.cs'를 만들어줘

- 사라질 대상 Object를 Hierarchy 에서 선택 > inpector 창에 script를 드래그 드랍하여 등록한다.
hide.cs 파일의 이름을 click_hide.cs로 바꾸고. 게임시작되면 사라지는 기능 삭제, 마우스로 클릭하면 사라지게 해줘

- 파일명이 변경되면 기존 스크립트는 missing(유실) 상태가 되어 새로 등록해야 합니다.
- 따라서 되도록이면 파일명은 한번에 제대로 정하고 파일을 삭제하거나 이름변경 하지 않도록 합니다.
명령어 입력 유의사항
- ⭕
MetaXRGrabInteractable가 WhenSelectEntered 되었을때 AudioSource를 Play해줘- 아주 구체적이고 방법까지 명시되어있는 요청 - ⚠️
Meta XR All-in-One SDK에서 오브젝트를 잡았을때 소리가 재생되게 해줘- 아주 구체적이진 않지만 어느정도 알아들을 수 있는 요청 - ❌
물체를 손으로 잡으면 소리가 나게 해줘- 구체적이지 않고 방법을 알수 없는 요청(AI가 임의로 방법을 찾게됨 - 작동하지 않을 가능성 높음)
Meta XR All-in-One SDK
Meta XR All-in-One SDK에서의 Grab 관련 구성
주요 클래스
| 클래스 | 설명 |
|---|---|
MetaXRGrabInteractable |
잡을 수 있는 오브젝트 (Grabbable) |
MetaXRGrabInteractor |
손/컨트롤러 쪽의 Grabber |
MetaXRDirectInteractor |
직접 손 트래킹 기반 상호작용 |
MetaXRRayInteractor |
레이 기반 상호작용 (UI 등) |
Grab 관련 주요 이벤트
MetaXRGrabInteractable 컴포넌트에는 UnityEvent 기반 이벤트가 있습니다.
| 이벤트 이름 | 트리거 시점 |
|---|---|
WhenSelectEntered |
오브젝트를 잡을 때 |
WhenSelectExited |
오브젝트를 놓을 때 |
WhenHoverEntered |
손/커서가 근처에 왔을 때 |
WhenHoverExited |
손/커서가 떠났을 때 |
WhenActivated |
트리거(Primary action) 눌렀을 때 |
WhenDeactivated |
트리거에서 손 뗐을 때 |
Inspector에서 직접 이벤트를 연결할 수 있으며, C# 코드로도 구독 가능합니다.
코드 예시 (Meta XR All-in-One SDK)
using Meta.XR.Interaction;
using UnityEngine;
public class GrabEventExample : MonoBehaviour
{
[SerializeField] private MetaXRGrabInteractable grabbable;
void Start()
{
grabbable.WhenSelectEntered.AddListener(OnGrabBegin);
grabbable.WhenSelectExited.AddListener(OnGrabEnd);
}
private void OnGrabBegin(SelectEnterEventArgs args)
{
Debug.Log($"{grabbable.name} 잡음 by {args.interactorObject}");
}
private void OnGrabEnd(SelectExitEventArgs args)
{
Debug.Log($"{grabbable.name} 놓음 by {args.interactorObject}");
}
}
