遭遇した問題
エラー文
UdonSharp does not currently support null conditional operators
UdonSharp は現在、Null 条件演算子をサポートしていません。
DeepL翻訳
対処法
概要
このエラーは UdonSharp によって Unity で作成された VRChat のワールドにおいて、C# の Null 条件演算子を使用している場合に発生するため、このエラーを回避するには Null条件演算子を使わない方法で null チェックを行う必要がある。
「Null条件演算子」とは、
Null条件演算子 – Wikipedia
第一項が「null」でない場合に第二項の結果を返し、
「null」である場合に「null」を返す演算子である。
例
Before
Null 条件演算子を使用してしまっている。
var rb = objPlayer?.GetComponent<Rigidbody>();
After
- Null 条件演算子ではなく三項演算子を使用する
var rb = objPlayer != null ?
objPlayer.GetComponent<Rigidbody>() : null;
var rb = objPlayer == null ?
null : objPlayer.GetComponent<Rigidbody>();
- Null 条件演算子ではなく if を使用する
if(objPlayer != null) var rb = objPlayer.GetComponent<Rigidbody>();