1、物体有碰撞器
2、添加XRSimpleInteractable脚本
3、注册事件
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.XR.Interaction.Toolkit;
public class RaycastEvent : MonoBehaviour
{
private XRSimpleInteractable interactable;
private SpriteRenderer meshRenderer;
private void Awake()
{
interactable=GetComponent<XRSimpleInteractable>();
meshRenderer=GetComponent<SpriteRenderer>();
meshRenderer.enabled=false;
interactable.hoverEntered.AddListener(OnHoverEntered);
interactable.hoverExited.AddListener(OnHoverExited);
interactable.selectEntered.AddListener(OnSelectEntered);
interactable.selectExited.AddListener(OnSelectExited);
}
/// <summary>
/// 悬停进入
/// </summary>
/// <param name="args"></param>
private void OnHoverEntered(HoverEnterEventArgs args)
{
meshRenderer.enabled=true;
}
/// <summary>
/// 悬停退出
/// </summary>
/// <param name="args"></param>
private void OnHoverExited(HoverExitEventArgs args)
{
meshRenderer.enabled=false;
}
/// <summary>
/// 选择进入
/// </summary>
/// <param name="args"></param>
private void OnSelectEntered(SelectEnterEventArgs args)
{
meshRenderer.enabled=true;
}
/// <summary>
/// 选择退出
/// </summary>
/// <param name="args"></param>
private void OnSelectExited(SelectExitEventArgs args)
{
meshRenderer.enabled=false;
}
}
4、由于导入XR Interaction Toolkit新事件系统的按键是 grip换成扳机键如下
已修改左手为例
点击如下图所示 输入 triggerbutton ,点击第三处的时候输入框就出来了,会被挡到直接输入就好,看后面的图
选择 triggerbutton lefthand xrcontroller
在选择 select value 同上
记得保存