我是团结的初学者,希望有人可以在这里帮助我。我有一些带有标签BtnCharacter
的按钮,想要找到它们并将其位置添加到转换列表中。我猜可能是这样的:
public class Line : MonoBehaviour
{
public List<Transform> SaveList;
void Start()
{
SaveList.Add(GameObject.FindGameObjectsWithTag("BtnCharacter").transform.position);
}
}
但是调试器显示以下内容:
错误CS1061:“ System.Array”不包含“ transform”的定义,并且找不到扩展方法“ transform”接受类型为“ System.Array”的第一个参数(您是否缺少using指令或程序集参考?)(CS1061)(Assembly-CSharp)
答案 0 :(得分:3)
$the_query = new WP_Query('year=' . $year . '&w=' . $lastweek );
方法将所有具有给定标签的对象作为数组。您的GameObject.FindGameObjectsWithTag
是SaveList
的列表,您正在尝试将数组添加到列表中。
必须像;
Transform
答案 1 :(得分:1)
首先,您是否真的需要一个通用列表,我的意思是一个简单的数组也可以工作。无论哪种方式,这些解决方案都应该有所帮助-
1)使用通用GameObject列表
public class Line : MonoBehaviour
{
public List<GameObject> SaveList;
void Start()
{
SaveList = new List<GameObject>(GameObject.FindGameObjectsWithTag("BtnCharacter"));
}
}
2)使用通用Transform / Vector3列表:
在访问位置的第一种方法中,您必须添加一个额外的.transform.position
。
在此解决方案中,您将能够创建一个通用的Transform / Vector3列表来存储变换/位置,如果您需要存储变换,则创建一个变换列表,然后在此处创建Vector3列表,这是它的代码-< / p>
public class Line : MonoBehaviour
{
public List<Vector3> SaveList;//use List<Transform> to create transform list
void Start()
{
SaveList = new List<Vector3>();
GameObject[] objectsWithTag = GameObject.FindGameObjectsWithTag("BtnCharacter");
foreach(GameObject GO in objectsWithTag){
SaveList.Add(GO.transform.position);//use GO.transform to add the transform in the list
}
}
}
3)自己使用数组,我认为最简单
public class Line : MonoBehaviour
{
public GameObject[] SaveArray;
void Start()
{
SaveArray = GameObject.FindGameObjectsWithTag("BtnCharacter");
}
}
在第三种解决方案中,如果您想存储vector3或变换数组,然后尝试使用第二种解决方案中使用的方法,我也可以为其键入代码,但我希望您自己尝试以得到更好的理解。希望这个答案有帮助:)
是的,已存在文档,因此使用Google搜索或搜索或阅读文档确实可以帮助您信任我:)