我正在使用Unity 5.4.2f2 Personal,并且编写了类似于以下内容的C#脚本:

using UnityEngine;
using System;

public class Outer : MonoBehaviour {

    // Some public outer fields

    public class Inner : MonoBehaviour {
        // Some public inner fields
    }

}


我希望能够将OuterInner都附加到场景中的GameObjects。不幸的是,即使我向其中添加了Inner[Serializable]也不会在Unity Inspector中显示为可用脚本。我知道很多人可能会说,如果我想让嵌套类对外界可见,那么我的设置可能有问题,但是出于这个问题,我只想知道是否可以这样做。也就是说,有什么方法可以使嵌套类可用作Unity组件?

最佳答案

不,没有办法将嵌套类用作统一组件。要将MonoBehaviour类用作一个统一组件,该类名称必须等于脚本的文件名,因此无法使用嵌套类。

如果在不重命名脚本文件的情况下将外部类重命名为所需的其他名称,您将看到也将无法使用新的外部类。

[编辑]

我找到了documentation。正如我所说:
“类名和文件名必须相同,才能使脚本组件附加到GameObject。”

关于c# - 使用嵌套类作为Unity3D组件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40515023/

10-12 00:24