C# 查找附加到多个游戏对象的通用脚本?

C# 查找附加到多个游戏对象的通用脚本?,c#,unity3d,C#,Unity3d,我有一个附加到多个游戏对象的脚本,我在另一个脚本中引用了这个脚本。但是,当被引用时,只访问一个游戏对象,而不是访问所有游戏对象。 如何访问使用此脚本的所有游戏对象 using System.Collections; using System.Collections.Generic; using UnityEngine; public class CheckForGrab : MonoBehaviour { private OVRGrabber grabber; //the scrip

我有一个附加到多个游戏对象的脚本,我在另一个脚本中引用了这个脚本。但是,当被引用时,只访问一个游戏对象,而不是访问所有游戏对象。 如何访问使用此脚本的所有游戏对象

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CheckForGrab : MonoBehaviour {

    private OVRGrabber grabber; //the script I try to access
    // Use this for initialization
    void Start () {
        grabber = (OVRGrabber) FindObjectOfType(typeof(OVRGrabber)); // the gameObject the script is attached to
    }
}

如果需要多个结果,则必须查询多个实例。很明显

试试看。注意“s”

此外,在这种情况下,使用泛型而不是强制转换

grabbers = FindObjectsOfType<OVRGrabber>();
grabber = grabbers[index];

使用:FINDOBJECTOFTYPEOFVRGRABER替代FINDOBJECTOFTYPEOFVRGRABER

这一点很重要

您的代码如下所示:

private OVRGrabber[] grabbers; 
private OVRGrabber grabber;

// Use this for initialization
void Start () {
    grabbers = (OVRGrabber) FindObjectsOfType(typeof(OVRGrabber)); 

    grabber = grabbers[0]; //iterate if you want to do stuffs with everyone of them

}

谢谢,如另一个答案中所述,以下行已替换为:grabbers=OVRGrabber FindObjectSoftypeTypeOfVRGrabber//from GRABERS=FindObjectSoftType//到