【Unity】スクリプトが見つからない場合の対処方

f:id:nuakam:20180124180536j:plain

スクリプトが見つからない問題

スクリプトを書いても何故か読み込まれないときがあったので備忘録。

環境

Unity 2017 1.1.p3
windows10

問題

Asset\WebAccess\Json\test.csで 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System;


namespace WebAccessor.Json
{
   [Serializable]
    public class ChildNewsReturn
    { 
        public string aaa;
        public string bbb;
    }
}

として 他のファイルから読びだそうとしても、「そんなクラスはないわアホ」と怒られるエラーが多々起こる。


間違いなくある。
記入ミスもないぞ。



何度かReimportやら再起動すると治ることもあるけど、本腰入れて調べてみた。

原因

色々試してみた結果、Unityが作ったファイルをプロジェクトに追加していなかったことが原因だと判明。

  1. UnityとVisualStudioは連携している。(人によっては違うエディタ)
  2. Unityは「ここからここまでが一つのプロジェクトだよ」と認識している。
  3. VSはVSで「ここからここまでが一つのプロジェクトだよ」と認識している。


Visual StudioがUnityからのプロジェクト範囲を受け取ってるわけではないのだ。


恐らくUnityで新規スクリプト作成すると同時にVisual Studioのプロジェクトにも追加する処理が走っている。

しかし、何らかの条件下でうまくプロジェクトに追加できずに読み込みができなくなっている(と思う)。

問題の詳細

スクリプトをvisual studioなりで開いて、ソリューションエクスプローラからそのファイルを探すと下の画像のようになってる。
f:id:nuakam:20171129133137p:plain

プロジェクトに正しく追加されている場合はこう
f:id:nuakam:20171129133141p:plain

▷こんなマークがついていない!
(関数の中身が開けない)

タブの下のメニューもその他のファイルになってる!
プロジェクトに追加されていない!

解決方法

ソリューションエクスプローラの上にある「最新の情報に更新」マークをクリックで治る。

とりあえずこれでカバー