You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
1011 B
30 lines
1011 B
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.XR.Interaction.Toolkit;
|
|
|
|
public class XRExclusiveSocketInteractor : XRSocketInteractor
|
|
{
|
|
public string AcceptedType; //SocketTarget의 SocketType과 비교할 값
|
|
|
|
|
|
public override bool CanSelect(XRBaseInteractable interactable)
|
|
{
|
|
//이 소켓과 인터렉션하려는 사물의 SocketTarget을 가져오고
|
|
SocketTarget socketTarget = interactable.GetComponent<SocketTarget>();
|
|
|
|
//SocketTarget이 없으면 선택 불가
|
|
if (socketTarget == null)
|
|
return false;
|
|
|
|
//baseClass에서도 선택할 수 있고, SocketTarget의 타입도 같으면 선택 가능하게
|
|
return base.CanSelect(interactable) && (socketTarget.SocketType == AcceptedType);
|
|
}
|
|
|
|
//선택 가능한 사물만이 Hover 가능하도록
|
|
public override bool CanHover(XRBaseInteractable interactable)
|
|
{
|
|
return CanSelect(interactable);
|
|
}
|
|
|
|
}
|