シヴァのブログ

UnityやUE4や趣味とかいろいろ...

開発メモ 「エラー処理」

何かと、いつも同じ間違えのエラーを繰り返ししまうので、

このメモに、

エラー文と、エラーの処理の方法を記す。

[書き方]

  • エラーの種類

エラー文

処理の方法

***************************************************************************

  • yield WaitForSecondsについて

Script error: Update() can not be a coroutine.

Update()関数の中に、yield WaitForSecondsを入れない。

 ***************************************************************************

  • Animationについて

AnimationEvent has no function name specified!

アニメーションファイルに五角形のキーマーカーを設定しているのに、

関数をつけていないから、エラーが出る。

だから、五角形のマーカーを消す。以下参照。

f:id:shivaT:20130711214336p:plain

***************************************************************************

  • charについて

BCE0044: unexpected char: 0x3000

その行のどこかに全角空白があるので、消す。

***************************************************************************

  • 配列について

ArgumentOutOfRangeException: Index is less than 0 or more than or equal to the list count.

System.Collections.ArrayList.ThrowNewArgumentOutOfRangeException

配列の長さを変える。例えば、

for(var i = 0; i <= arr.length; i++){}

       ↓

for(var i = 0; i < arr.length; i++){}

にするとか、

for(var i = 0; i <= arr.length-1; i++){}

などにする。

とにかく、配列の範囲以上を指定しないようにする。

それでも、直らなかったら、

for文とfor文の中身({}←この中)がうまく合っていない可能性あり。

***************************************************************************

  • 型について

InvalidCastException: Cannot cast from source type to destination type.

型(intやStringなど)が違うからプログラムに合わせる。

***************************************************************************

  • ゲームをビルド(Build)するとき

bundle identifier has not been setup correctly

File >> Build Settings... >> Player Settings...を押すと、

Inspector上にPlayerSettingsが出る。

そこのProduct Nameと

Other SettingsのBundle Identifierの項目には、

頭文字にアンダーバー( _ )と、数字を使用しないようにする。

あとは、

Bundle Identifierの項目の「com.Company.ProductName」を、

「com.unity3d.プロジェクト名」に設定する。

(※私の場合は、「com.shiva.F16Shooting」でうまくいきました。)

以下参照↓

 http://shivat.hatenablog.com/entry/2013/12/21/085100

***************************************************************************

  • プログラムファイル(JavaScript)からNGUI(Tween)を使用する

BCE0005: Unknown identifier: 'TweenPosition'.

「NGUI/Scripts」のなかにある

Interaction、Internal、Tweening、UI

というフォルダを「Assets/Plugins/NGUI」フォルダに配置する事で回避出来る。

(Plugins/NGUIは、自分で作る。)

以下の画像を参照↓

[Before]

f:id:shivaT:20131209180339p:plain

[After]

f:id:shivaT:20131209180349p:plain

なぜこんなエラーが出るかというと、

NGUIで用いているCSファイル(C#)のコンパイルが先に行われていない為、

JSファイルからは使用できないのです。

だから、

こういう風に、配置する位置を変えることによって、

CSファイルが先にコンパイルされ、JSファイルが使用できるという事です。

***************************************************************************

  • GetComponentについて

BCE0019: 'enabled' is not a member of 'UnityEngine.Component'.

[間違い例]

var startButton = GameObject.Find("start_button").GetComponent(”UISprite”);

startButton_bg.enabled = true;

[正解例]

var startButton = GameObject.Find("start_button").GetComponent(UISprite);

startButton_bg.enabled = true;

 

GetComponent()のカッコ内は「” ”」(ダブルコーテーション)を入れない。

んで、

じゃあ、「’ ’」(シングルコーテーション)ならどうかと…やってみたところ、

同じエラーが出てしまい、ダメでした。余計なのは入れないように…。

 ***************************************************************************

  • Dynamicフォントについて

Font size and style overrides are only supported for dynamic fonts.

[直訳]:フォントサイズとスタイルはダイナミックフォントでしか変更できない。

だから、Dynamic自体がプラットフォームがwindowsmacじゃないと使えない。

Android向けにゲームを開発していたから起きたエラーで、それでも作るなら、

大元のフォントサイズを変える必要がある。

フォントのサイズ(スタイル)を変えるには、Inspector上の、

フォントのインポート設定のFont Size(Character)の項目で設定しなければならない。

※Characterの項目を「Dynamic」にする。以下参照↓

f:id:shivaT:20131210025955p:plain

 ***************************************************************************

  • キャラクターコントローラー(Character Controller)について

CharacterController settings are invalid.

「Character Controller」をつけているオブジェクトの、

スケール(Scale)が小さいとエラーが起こる。

 ***************************************************************************

  • 空(Sky Box)が黒くなる現象について

各テクスチャの下の「Fix Now」ボタンを押すと直る。

 ***************************************************************************

  • 「WWWForm」と「POSTデータ」について

Error when creating request. POST request with a zero-sized post buffer is not supported.

POSTDataが空の場合に、エラーが起こるっぽい。

適当に、以下のようなデータを入れると直る。

wwwForm.AddField("id"0);

 ***************************************************************************

  •  参照対象がない

The referenced script on this Behaviour is missing!

ゲームオブジェクトにスクリプトを適用して、

何かしらの理由でその参照が外れたときにでる。

以下の2つのどちらかの方法で直る。
①参照が切れているゲームオブジェクトを探し出してスクリプトを再度適用する
スクリプトへの参照を削除する

 ***************************************************************************

 

 ***************************************************************************