読者です 読者をやめる 読者になる 読者になる

The jonki

呼ばれて飛び出てじょじょじょじょーんき

【Unity】 Expression denotes a `type', where a `variable', `value' or `method group' was expected

例えばこれはJavaScriptでは通るが…

Vector3 position = transform.position + Vector3(x, y, z);

C#で同じコードだとこんなエラーが出る。

error CS0119: Expression denotes a `type', where a `variable', `value' or `method group' was expected


'variable'なところを'value'(値)か'method group'(メソッド)がいいんじゃん?と怒られている。C#においてこれは変数宣言として解釈される。

Vector3(x, y, z); //ただの変数宣言

なのでこんな感じでnewして'value'とする必要がある。

Vector3 position = transform.position + (new Vector3(x, y, z));


UnityにおいてC#JavaScriptはほぼ似たような文法だけど、こういうところはちょいちょいエラーが出てくるのでJavaScriptのソースを移行してくるときは注意。