診断コード
すべての UDN 拒否コードと、何が原因で出るのか、代わりに何を書けばよいか。
拒否には必ず安定した UDN コードが付きます。素の C# のエラーは、C# コンパイラ本来の CS コードのままです。Udonite は最初の拒否で止まらずに続行するため、一度のコンパイルでそのビヘイビアの問題がすべて出ます。
| コード | 意味 | どうするか |
|---|---|---|
| UDN0002 | 未対応の構文。Udonite がまだコンパイルできません。 | 別の書き方に変えるか、その行を添えて Issue を立ててください。「まだ」の拒否は解除されていきます。 |
| UDN0003 | 未対応の型。Udon に対応する表現がない型です。 | 対応している型を使ってください。配列は、要素の型が対応していれば対応しています。 |
| UDN0004 | 未対応のプログラム構造。クラス全体を一つの Udon プログラムにできません(Udon が扱えない基底型など)。 | メッセージの指示に従ってください。 |
| UDN0005 | Udon extern がありません。呼び出した Unity や .NET のメンバーが、Udonite の検証済み extern 一覧にありません。 | Udon が公開しているなら Issue を立てれば追加されます。していない場合はその旨がメッセージに出ます。 |
| UDN0006 | ルート基底型を解決できません。コンパイラから見えないものを継承しています。 | 基底クラスがコンパイルでき、参照済みアセンブリにあるか確認してください。 |
| UDN0007 | 除外指定が壊れています。除外ファイルの行を読み取れません。 | ProjectSettings/ の該当行を直すか削除してください。 |
| UDN0008 | 除外したコードに到達しました。コンパイル対象のビヘイビアが、除外したスクリプトを呼んでいます。 | 除外を解除するか、その呼び出しを消してください。 |
| UDN0009 | 除外が中途半端です。除外が必要な範囲の一部しか覆っていません。 | フォルダ全体、またはスクリプト全体を除外してください。 |
| UDN0010 | イベントのシグネチャ不一致。override したイベントの引数が違います。 | UdoniteBehaviour 側のシグネチャに合わせてください。 |
| UDN0011 | Udon に相当するものがありません。Udon では決して実行できません。 | メッセージが示す書き方に変えてください。 |
| UDN0012 | 再帰。メソッドが直接または間接的に自分を呼んでいます。 | 明示的なスタックを使ったループに書き換えてください。 |
| UDN0013 | ヒープ超過。Udon が許す数より多くの変数が必要です。 | ビヘイビアを分割するか、大きな定数配列を減らしてください。 |
UDN0002 と UDN0011 はあえて別のコードにしています。前者は「まだ」、後者は「決して」です。どちらかが分かれば、待てばよいのか書き換えるべきなのかが判断できます。
拒否の読み方
Door.cs(14,9): error UDN0005: Udonite does not support 'UnityEngine.AudioListener.volume' yet. ...
ファイル名と位置は、その式そのものを指しています。Issue にはこの行をそのまま貼ってください。どの構文か、そして Udonite が探した extern のシグネチャまで含まれているので、追加に必要な情報がそろいます。