2

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
    }

}

Outerと の両方をInnerシーン内のゲームオブジェクトにアタッチできるようにしたいと考えています。残念ながら、Inner追加しても、Unity Inspector で使用可能なスクリプトとして表示されません[Serializable]。ネストされたクラスを外の世界に見えるようにしようとすると、多くの人が私の設定に問題があると言うでしょうが、この質問のために、これができるかどうか知りたいだけです. つまり、ネストされたクラスを Unity コンポーネントとして使用できるようにする方法はありますか?

4

5 に答える 5

4

いいえ、ネストされたクラスを unity コンポーネントとして使用する方法はありません。MonoBehaviour クラスを unity コンポーネントとして使用するには、クラス名がスクリプトのファイル名と同じでなければならないため、ネストされたクラスを使用することはできません。

スクリプト ファイルの名前を変更せずに、外部クラスの名前を任意の別の名前に変更すると、新しい外部クラスも使用できないことがわかります。

[編集]

ドキュメントを見つけました。そして、私が言ったように、「スクリプト コンポーネントをゲームオブジェクトにアタッチできるようにするには、クラス名とファイル名を同じにする必要があります。」

于 2016-11-09T20:12:55.260 に答える