みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

Unity Error List

Unityのエラーとその原因・対策をまとめています。

 

expecting "RPAREN", found "???". (BCE0044)

Instantiate(prefab, Vector3((i*3,j*3,k*4), Quaternion.identity)

のように、カッコが対応していない。エラーが出る行は大抵カッコが対応していない箇所の直後であるから、エラーの直前のカッコの対応関係をみればよい。

このように単純な場合もあるが、MonoDevelopの頭の悪さに悩まされることもある。

例えば、以下のコードはコンパイルエラーとなる。

Rect(pos.x-texsize.x/2,pos.y-texsize.y/2,texsize.x,texsize.y)

これは以下のようにすることでコンパイルできる。

Rect(pos.x-texsize.x/2, pos.y-texsize.y/2, texsize.x, texsize.y)

何が変わったのか分からないと思うが、引数のコンマの直後にスペースを入れただけである。このことから、MonoDevelopでは引数の直後にはスペースを入れる必要があるように思われる。(2012.9.13)

 

 

IndexOutOfRangeException: Array index is out of range.

n as (int) = array(int,10)
Debug.Log(n[10])

配列(Array)で、宣言した個数よりも大きな番地を指定している。

 

 

It is not possible to invoke an expression of type "int". (BCE0077)

Application.LoadLevel("Scene Name")

と書くところを、

Application.loadedLevel("Scene Name")

と書いている。入力アシストのおかげでよくやるタイプミス。

 

lastVertex < GetVertexCount () / UnityEngine.Mesh:set_triangles(Int32[])

mesh.Clear()
mesh.vertices = (Vector3(0,0,1),Vector3(0,0,2),Vector3(0,1,0))
mesh.triangles = (0,1,3)

meshにて、三角形配列(triangles)を設定する際に、三角形配列で指定された最大の頂点indexの方が、事前に設定された頂点(Vertex)の数よりも小さい。

 

OverflowException

value as (Vector3) = array[of Vector3](-1)

のように、arrayの数が正の整数でない。

 

 

VerificationException: Error verifying ***:*** (): Unexpected object for ldvirtftn at 0x***

test as int = 1
Debug.Log(test.ToString)

int型をToStringしている、など、よくわからないことをしている。MonoDevelopではエラーにならないが、Unityで実行するとエラーになる場合にこのエラーが表示される気がする。

Debug.Log(""+test)

とすれば問題ない。