unity游戏引擎-获取场景中附带的所有相同脚本';s游戏对象,并使用c#将其存储到数组中

本文关键字:游戏 对象 存储 数组 脚本 获取 引擎 unity | 更新日期: 2023-09-27 17:59:15

我需要在场景中获得所有相同的脚本,然后在另一个脚本中处理它。可以做到吗
以下是我迄今为止尝试的内容,但unity在使用时出现以下错误:

ScrollingBackgroundScript[] scrollingObjects = FindObjectsOfType (typeof(ScrollingBackgroundScript)) as ScrollingBackgroundScript;  

unity的错误声明是:

错误CS0039:无法通过内置转换将类型UnityEngine.Object[]转换为ScrollingBackgroundScript

根据您的评论(只得到一个而不是多个游戏对象),我认为其他对象可能处于非活动状态。FindObjectsOfType找不到非活动对象:)

对此的一个解决方案是使用Resources.FindObjectsOfTypeAll:

var scrollingObjects = Resources.FindObjectsOfTypeAll<ScrollingBackgroundScript>();

请注意,它最终可能会返回比您想要的更多的东西!(查看文档)。

unity游戏引擎-获取场景中附带的所有相同脚本';s游戏对象,并使用c#将其存储到数组中

您忘记了[]

ScrollingBackgroundScript[] scrollingObjects = FindObjectsOfType (typeof(ScrollingBackgroundScript)) as ScrollingBackgroundScript[];