質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

484閲覧

【Unity】Inspectorに独自クラスのフィールドを使う際、GameObjectを指定すると表示される警告の解消したい

pip

総合スコア19

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2018/10/01 16:54

型が混同した独自のクラスをInspectorに表示させようと思いました。
(実際の記述は後述しますが、)表示するクラスを作成したところ、VisualStudio上で次の警告が表示されます。

Field Panel is a member of <変数名> which is serializable but is of type UnityEngine.GameObject which is not serializable

警告の内容からは、GameObject型はシリアライズ出来ないという意味なのだと思います。
しかし、変数に指定したい物は、ユニークなGameObjectです。

警告なので、強制的時実行することは可能かもしれませんが、解消できるのであれば解消したいです。
GameObjectを指定したい場合は、どのようにすればよいでしょうか?

既存の指定方法

下記のようにGameObjectを指定します。
ユーザーは複数いて、数十人指定する必要があるため、個別にフィールドを作らず、リストで指定しました。

[System.Serializable] public class User { public string name; public GameObject Panel; public GameObject MyObject; } [Tooltip("フィールド上に存在するユーザー設定")] public List<User> User = new List<User>();

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

回答ではなくすみません。

私の環境では再現しなかったのですが、UnityやVisual Studio のバージョンなどは合っていますか?

・Unity2018.2.8f1
・Visual Studio2017 ver 15.7.3

また、警告は出ていても Inspector 上に User の内容は表示されますか?

あと、警告は UnityEditor では同様の警告が表示されますか?

こちらでは、User クラスをインナークラスにした場合も、独立したクラスにした場合も特に警告は表示されませんでした。

もし UnityEditor では警告が表示されないのであれば、Visual Studio に入っている拡張機能などを疑ってみてもよいかもしれません。

投稿2018/10/01 21:43

masanori_msl

総合スコア80

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pip

2018/10/02 11:29

ご回答ありがとうございます! また、ご確認いただきお手数をおかけしました。 高評価を押そうとしてベストアンサーを押してしまいましたが、まだ解決していません… バージョンは下記で、マイナーバージョンこそ違いますが、そこまで違いが無いように思います。 - Unity2018.2.10f1 - Visual Studio2017 ver 15.7.5 UnityのInspector上には表示されます。 VisualStudio以外でUnityのソースを修正したことが無いため、UnityEditorの存在は知りませんでした。 > もし UnityEditor では警告が表示されないのであれば、Visual Studio に入っている拡張機能などを疑ってみてもよいかもしれません。 成程ですね。 検索しても同様の問題を解決しているひとが見当たらずにいましたが、 一旦無視しても大丈夫かもしれませんね。
masanori_msl

2018/10/02 21:15

すみません、UnityEditorというのは Unity.exe のことを指していました (Visual StudioのようなIDEやエディタのようなものがあるわけではありません) _(._.)_ こちらで警告がでていないのであれば、Visual StudioでUnityのGameObjectクラスが正しく認識できていないために警告が出ているのでは?と考えました。 Inspector上には正しく表示されている、ということであれば、(気持ち悪いとは思いますが)いったん無視してもよいのかもしれません。
pip

2018/10/04 22:02

引き続き、ご回答ありがとうございます。 今のところ無視しても問題なさそうなので一旦保留にしてます(笑) ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問