我有一个已附加到多个gameObjects上的脚本,正在另一个脚本中引用此脚本。但是,当引用时,仅访问一个gameObject而不是全部访问。 如何访问所有使用此脚本的游戏对象?
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
}
}
答案 0 :(得分:4)
如果想要多个结果,则必须查询多个实例。显然。
尝试FindObjectsOfType。注意“ s”。
此外,在这种情况下,请使用泛型而不是强制转换。
grabbers = FindObjectsOfType<OVRGrabber>();
grabber = grabbers[index];
答案 1 :(得分:0)
使用:使用FindObjectsOfType(typeof(OVRGrabber)代替FindObjectOfType(typeof(OVRGrabber)
s很重要。
您的代码将是这样:
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
}