必要最低限わかるためのUnity初心者の記録

これはUnity初心者が頑張ろうとしてたくさんのエラーに見舞われたのをなんとかしたりしなかったりした記録なので役に立つことを期待しないでください

環境

Ubuntu 18.04 (途中からWin) ver. 2020.1.1f1

各部の名称

シーンビュー:真ん中の画面。製作中のシーンが表示される。ここでインタラクティブにいじくり回せる。
▶ボタンを押すとゲームビュー状態となり、実際にはどう見えるかが確認できる。
オブジェクト:動かしたいモノ。シーンにある。
インスペクタビュー:右側のところ。オブジェクトについて動かしたり、その性質をいじったりできる。
ヒエラルキビュー:左側のところ。オブジェクト一覧。
プロジェクトブラウザ:プロジェクト全体のシーンやアセットなど。

プロジェクトとシーン

プロジェクト:ゲーム全体の構成
シーン:ゲームを構成する各場面・ステージなどのひとつひとつのこと

Asset storeからのインストール

Window → Asset Store → 選択 → Import →

ここでエラー起きた。 Storeで「Unityで開く」を選択してもUnityくん反応しない。Assetはプロジェクトブラウザにもない。 コンソールにエラー。 Assembly for Assembly Definition File 'Packages/com.unity.collab-proxy/Tests/Editor/Unity.CollabProxy.EditorTests.asmdef' will not be compiled, because it has no scripts associated with it. UnityEditor.Scripting.ScriptCompilation.EditorCompilationInterface:TickCompilationPipeline(EditorScriptCompilationOptions, BuildTargetGroup, BuildTarget, String[]) (at /home/bokken/buildslave/unity/build/Editor/Mono/Scripting/ScriptCompilation/EditorCompilationInterface.cs:423)

ググれども解決策なし。(同じ問題をかかえている人はいるっぽい) 2020.1.1f1がエラーをたくさんだしている可能性があるらしい。使わない方がいいかもしれない

2Dプロジェクト

2Dで新プロジェクト作ろうとしたらまた同様のエラー。プロジェクト開かれない。見ている限りAssembly Definition fileがおかしなことになっているよう。Assemby Definitionに関しては以下を参照

qiita.com

Assembly Definition Fileで上位にあるはずのスクリプトがなくなっちゃっているのかな…?

ちなみにUnity開き直したらプロジェクトは存在していて、開くことは出来た。

スクリプト

C#スクリプト作ろう。ヒエラルキで "Create empty", Adminと命名。次にAssetsで右クリック、C# Scriptを作成して "TestAdmin"と命名。次にEditタブ→Preferences→External ToolをVSCodeに設定。これでTestAdminをダブルクリックするとVSCodeが開き、これの上で編集できる。
実際やってみると、編集自体はうまくできるがそもそもzshのコマンドにscriptcsがない!インストールしなきゃいけないのでここを参照

github.com

Linuxsvm経由でインストールする必要がある。ここらへんで諦めてWinに変えました。

JSON parse error: Invalid escape character in string

Winに変えてスクリプトを作ろうとしたら出てきたエラー。Visual studioで編集したファイルをUnityに渡すときにJSONからShift-JIS文字が出てきていることで起きているらしい。下のQiitaを参考にした

Unity 2020で出てくるError detecting Visual Studio installations~への対処法 - Qiita
この記事の通りにPackages/com.unity.ide.visualstudio/Editor/Discovery.csのインスタンス生成部分を
Arguments = "-prerelease -format json",
から
Arguments = "-prerelease -format json -utf8",
にしたことで解決。ただし自分の場合なぜか何回か編集しないとうまくいかなかった。VSCodeで編集して保存して閉じないと反映されないのかもしれない。