質問: new TestClass(); testClassObject.flag; } } ``` ### 補足情報(言語/FW/ツール等のバージョンなど) C# Unity2017.2.0b8 ### 閲覧して頂きありがとうございます
回答: ``` public class TestClass : MonoBehaviour { public bool flag; } ``` 以上のように、`MonoBehaviour`が継承されたクラスに対し、newでオブジェクトを生成しようとすると、warningが出るはずです。 そのため、newでオブジェクトを生成したい場合は、`MonoBehaviour`を継承しない方がよいでしょう。 `MonoBehaviour`は、基本的にゲームオブジェクトにアタッチする形で使用します。 使い分けについては、以下のようになると思います。 * ゲームオブジェクトにアタッチしたスクリプト(`MonoBehaviour`を継承している)のフィールドを変更したい場合は、コンポーネントの取得で行う。 * ゲームオブジェクトにアタッチしたくないスクリプト(`MonoBehaviour`を継承していない)のフィールドを変更したい場合は、newでオブジェクトを生成する。