Unity制作のメモ
はじめに
みなさんこんにちは。
ノーパソにUnrealEngineが入らなくて悲しい気持ちのさんたろーです。
自作ゲーム第二弾を開発中でして、
つまづいた点があったら随時追記していきます。
エラー対処
UnityHubからインストールできない
今回は少し古いですが、2018年4月にでたLTS版で開発しようと。
UnityHubの右上からインストールしようとしたのですが、インストール押しても動かない(エラーもなく、コマンドプロンプトが一瞬呼ばれるが、以後なにも起きない)
仕方なくUnityをそのままインストール。
そして、インストールしたエディタをUnityHubから参照することでとりあえず解決。
BuildSupportの記述がエディタ一覧からは無いのが不安だが、プロジェクトには記載されている。
「アクセス許可で禁じられた方法でソケットにアクセスしようとしました」
UnityHubからプロジェクトを起動すると
「アクセス許可で禁じられた方法でソケットにアクセスしようとしました」
というエラーがConsoleに...
PC再起動し、UnityHubを起動すると
「サーバーは今応答していません」
というエラーが
UnityHubからライセンス認証を更新することで解決した
SerializeField
privateなフィールドをInspector上からイジれるSerializeField。
大変便利だが、readonlyではできない。
コンストラクタからしか変えられない(値型は)
同じprefabなのに、ぬるぽになるときとならないときがある
特にこれが起こるのがScriptからGetComponentをするとき。
実行順序の問題で、Aがまだnullの状態のときに、Aを参照しようとしてしまうことから発生しがち。
private SampleClass sample; //悪い例 public SampleClass Sample { get{ return this.sample; } } //改善例 public SampleClass Sample{ get{ if(this.sample == null) this.sample = GetComponent<SampleClass>(); return this.sample; } }
参考記事↓
使える知識
マジックナンバーは列挙型に
火属性は0、水属性は1...という風にマジックナンバーを割り当てると、
「木属性何番だったかな...」とわかりにくい。
そこで列挙型(enum)を利用するとInspector上からもこの通り