【发布时间】:2019-09-30 17:43:09
【问题描述】:
我有 2 个游戏对象: 1.) 螺丝(带有 2 个带有附加脚本的空子对象以生成不同的预制类型的螺丝) 2.) 盘子
对于板对象,我分配了一个脚本,该脚本获取特定标签并将这些带有该标签的对象放入一个数组中。 但是,我添加了一种方法,将 2 种不同类型的标签放入一个列表中,然后放入一个数组(螺丝)中,如下所示。
螺丝的实例化发生在另一个脚本 Awake() 方法中。两种螺丝都生成 x20,所以总共有 40 个。
尝试使用一个标签获取所有对象工作正常。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Linq;
public class ScrewHandler : MonoBehaviour
{
/*------------- Declaration of vars etc. -------------*/
public GameObject[] Screws;
/*----------------- Create Array --------------------------*/
private void Start()
{
Debug.Log("Start called");
Screws = FindGameObjectsWithTags(new string[] {"ScrewA","ScrewB"});
// custom method to get multiple types of tags into one array
GameObject[] FindGameObjectsWithTags(params string[] tags)
{
var all = new List<GameObject>();
foreach(string tag in tags)
{
var temp = GameObject.FindGameObjectsWithTag(tag).ToList();
}
return all.ToArray();
}
}
}
如果一切顺利,我应该能够在脚本检查器中看到包含所有对象的数组。
【问题讨论】: