C# IndexAutoFrangeException:尝试访问游戏对象数组时,数组索引超出范围?
因此,我试图从用FindGameObjectsWithTag初始化的GameObject数组中访问一个元素,但我得到以下错误 “IndexOutOfRangeException:数组索引超出范围。” 当我打印数组的长度时,我得到了3,这是应该的。我怎么修理它C# IndexAutoFrangeException:尝试访问游戏对象数组时,数组索引超出范围?,c#,unity3d,scope,C#,Unity3d,Scope,因此,我试图从用FindGameObjectsWithTag初始化的GameObject数组中访问一个元素,但我得到以下错误 “IndexOutOfRangeException:数组索引超出范围。” 当我打印数组的长度时,我得到了3,这是应该的。我怎么修理它 public class selectObject : MonoBehaviour { // Use this for initialization public GameObject[] objects; void
public class selectObject : MonoBehaviour {
// Use this for initialization
public GameObject[] objects;
void Start () {
GameObject[] objects = GameObject.FindGameObjectsWithTag("isari");
Debug.Log (objects.Length);
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown(0))
{
Debug.Log("Mouse is down");
RaycastHit hitInfo = new RaycastHit();
bool hit = Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hitInfo);
if (hit)
{
Vector3 position = hitInfo.transform.gameObject.transform.position;
Quaternion rotation = hitInfo.transform.gameObject.transform.rotation;
Debug.Log("Hit " + hitInfo.transform.gameObject.name);
Object.Instantiate (objects[0], position,rotation);
Object.Destroy (hitInfo.transform.gameObject);
if (hitInfo.transform.gameObject.tag == "Construction")
{
Debug.Log ("It's working!");
} else {
Debug.Log ("nopz");
}
} else {
Debug.Log("No hit");
}
Debug.Log("Mouse is down");
}
}
}
在
Start
函数中声明一个本地objects[]
变量,隐藏字段objects
。只需从start
函数中删除对象
数组的声明即可
你可以试试这个
public GameObject[] objects;
void Start () {
objects = GameObject.FindGameObjectsWithTag("isari");
Debug.Log (objects.Length);
}
在
Start
函数中声明一个本地objects[]
变量,隐藏字段objects
。只需从start
函数中删除对象
数组的声明即可
你可以试试这个
public GameObject[] objects;
void Start () {
objects = GameObject.FindGameObjectsWithTag("isari");
Debug.Log (objects.Length);
}