【Unity4】『Unity4入門』五章サンプルで Index out of bounds が出てしまったら

『Unity4入門 最新開発環境による簡単3Dゲーム製作』

五章のサンプルゲームのスマホ対応版を実行したら次のエラーが出た。

UnityException: Index out of bounds. Swipe.Update () (at Assets/script/Swipe.js:6)

Unityライブラリ辞典でエラーが出ている関数を調べてみたら、回避策が見つかったので載せておきます。

初版第一刷のP.225に次のscript例が記載されていますが、これを後述する記載に直してみてください。

【誤(掲載内容)】

#pragma strict

function Update () {

  var deltaPosition : Vector2 = 
    Input.GetTouch(0).deltaPosition;
		
  var position : Vector3 = transform.localPosition;
  position.x = Position.x - deltaPosition.x;
  position.y = Position.y - deltaPosition.y;
  transform.localPosition = position;
}

【正(訂正内容)】

#pragma strict

function Update () {

  if (Input.touchCount > 0) { //←このIF文を追加
    var deltaPosition : Vector2 = 
      Input.GetTouch(0).deltaPosition;

    var position : Vector3 = transform.localPosition;
    //position変数がPositionと誤植されていたのでついでに
    position.x = position.x - deltaPosition.x;
    position.y = position.y - deltaPosition.y;
    transform.localPosition = position;
  }
}

Unityライブラリ辞典、さっそく活躍。高い金出した甲斐があるというもの。

5年前

2 コメント

コメントを残す

メールアドレスが公開されることはありません。