Unity(C#)无法访问另一个Data类的数据

时间:2018-02-02 10:35:46

标签: c# unity3d

我在一个对象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时,就像新类一样,它可以正常工作。 但我希望将它分成更多的脚本。

我是脚本和编程的新手,所以我很高兴有任何建议。

0 个答案:

没有答案