我在一个对象Main Camera中有两个脚本(例如Script1(用于创建数据)和Script2(用于处理数据))。
SCRIPT1:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
SCRIPT2:
namespace something
{
public class Data
{
public GameObject obj;
}
[ExecuteInEditMode]
public class Create: MonoBehaviour
{
Data[] data;
void Start()
{
data = new Data[NumData()]; //NumData() = int (e.g. 5)
CallFunction();
}
void CallFunction()
{
foreach(Transform obj in object)
{
for(int id = 0; id < NumData(); id++)
{
data[id].obj = object.gameObject;
}
}
//... etc
但是Script2给出了一个错误:
ArgumentException:GetComponent需要所请求的组件 “数据”来自MonoBehaviour或Component,或者是一个接口。
我知道它说我必须写:
using something;
[ExecuteInEditMode]
public class WorkWithData: MonoBehaviour
{
Data[] data;
void Update()
{
data = new Data[NumData()];
for (int id = 0; id < NumData(); id++)
{
data[id] = gameObject.GetComponent<Data>();
}
CallFunction();
}
void CallFunction()
{
//just getting information about data[].obj
//...
在Script1中。
但是当我写它时,Script1会发出警告:
您正在尝试使用'new'关键字创建MonoBehaviour。 这是不允许的。
当我将script2放入script1时,就像新类一样,它可以正常工作。 但我希望将它分成更多的脚本。
我是脚本和编程的新手,所以我很高兴有任何建议。