C# 如何将Unity脚本应用于多个层?

C# 如何将Unity脚本应用于多个层?,c#,unity3d,virtual-reality,C#,Unity3d,Virtual Reality,我正试图找到一种在虚拟现实中选择对象的方法 当点击某个对象时,某个代码会运行,告诉你该做什么——比如退出应用程序 现在,代码运行以查看对象是否具有“可交互”层,但是如何设置代码以检查更多层 在代码中,我已经尝试设置了一个检查,以检查更多的掩码,而不仅仅是“可交互”掩码 我希望当我添加另一个图层蒙版时,我可以将它添加到进程触地,并复制可交互的.pressed()以在按下对象时应用不同的功能。使用Unity中的层掩码。您可以利用这一点,通过位移动来迭代要检查的层 LayerMask laye

我正试图找到一种在虚拟现实中选择对象的方法

当点击某个对象时,某个代码会运行,告诉你该做什么——比如退出应用程序

现在,代码运行以查看对象是否具有“可交互”层,但是如何设置代码以检查更多层

在代码中,我已经尝试设置了一个检查,以检查更多的掩码,而不仅仅是“可交互”掩码

我希望当我添加另一个图层蒙版时,我可以将它添加到
进程触地
,并复制
可交互的.pressed()以在按下对象时应用不同的功能。

使用Unity中的层掩码。您可以利用这一点,通过位移动来迭代要检查的层

    LayerMask layer = LayerMask.GetMask("Layer A", "Layer B", "Layer C");
    Interactable interactable = currentObject.GetComponent<Interactable>();
    for (int i = 0; i < 3; i++)
    {
        if (layer == (layer | (1 << interactable.gameObject.layer)))
            interactable.Pressed();
    }
LayerMask layer=LayerMask.GetMask(“层A”、“层B”、“层C”);
Interactiable Interactiable=currentObject.GetComponent();
对于(int i=0;i<3;i++)
{
如果(层==(层|)(1
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Interactable : MonoBehaviour
{
    public void Pressed()
    {
        //This code will run when an object with the 'interactable' layer is clicked. 
    }
}
    LayerMask layer = LayerMask.GetMask("Layer A", "Layer B", "Layer C");
    Interactable interactable = currentObject.GetComponent<Interactable>();
    for (int i = 0; i < 3; i++)
    {
        if (layer == (layer | (1 << interactable.gameObject.layer)))
            interactable.Pressed();
    }