ラベル Unity-開発環境 の投稿を表示しています。 すべての投稿を表示
ラベル Unity-開発環境 の投稿を表示しています。 すべての投稿を表示

2016年6月25日土曜日

UnityでCardboard SDK使用時エラー対処 ~ Failed to re-package resources.

CardboardのSDKを使ってみたら、いきなりエラーでつまずいたので対処法をメモ。


■問題点

Unity上でビルドすると、

 Failed to re-package resources. See the console. See the Console for details

というエラーダイアログが出る。
 

コンソールログはこんな感じ。



■開発環境


Windows10 Pro (x64)
Unity 5.3.5f1 Personal
Android SDK Manager Revision 25.1.7

アプリはこちらのをダウンロードして使用。

EmergentVR cardboard-unity

これに含まれる以下の2つのパッケージを空のUnityプロジェクトに放り込めばアプリの準備はOK。
  • CardboardDemoForUnity.unitypackage
  • CardboardSDKForUnity.unitypackage
※最新のCardbordのSDKはDaydream対応で名称が gvr-unity-sdk-master 等と変わっていたかも。とりあえずちょっとテストするには問題なし。



■原因

Android SDK Build-tools が最新版(Rev.24)すぎるとまずい模様。
Rev23以前を使えば良さそう。


■対処

Android SDK Build-toolsのRev.24を削除して対処。
Rev23以前を残すようにする。

Android SDKのインストール先ディレクトリから SDK Manager.exeを実行。
(例:インストール先ディレクトリ\android-sdk_r24.4.1-windows\SDK Manager.exe)

起動したら"Tools">"Android SDK Build-tools"の Rev.欄を見る。
Rev.欄が24の行が Installed になっていることを確認。


"Android SDK Build-tools"の Rev. 24の行にチェックを入れて、右下の"Delete 1 package.."をクリックしてアンインストール。

Not Installedになったことを確認。
※すぐ下のRev. 23.0.3 はInstalledになっていることを確認。なっていない場合は、チェックを入れて右下の"install 1 package"をクリックしてインストールしておく。



これでUnity上でコンパイルが通ります。


■機材(おまけ)

Cardboardはハコスコを購入。
6000円位で買ったスマホ AcerZ200で実験。

ちょっと画面サイズがずれたりしてますが、50fps位でていてそれなりにVRぽいです。
(かなり非力なスマホなので激しい3Dアプリは厳しいですが)

ちなみに7インチ以上のタブレットでは画面が大きすぎて両眼距離からかけ離れてしまいうまく見えませんでした。

2015年6月11日木曜日

.gitignoreの正規表現

リビジョン管理ツールGitの.gitignore の正規表現についてメモ。


ネットで検索するとだいたい「正規表現が使える」とあるのですが。

実際やってみるとどうもうまくいかない・・・あれぇ・・・;。


厳密には正規表現ではない?

何をもって正規表現とするか・・・ですが。
とりあえず私的には、この辺の本を一応のリファレンスとしています。





どうもここで言う「正規表現」が .gitignore で全部使えるわけではないようです。





公式ドキュメントをみる

仕様は本家にありき。
ということで本家にいくとありました。

http://git-scm.com/docs/gitignore


どうも一部の複合的な表記はできないのかもしれません。

むしろ複雑すぎる表記はもっと簡便に書くべき・・・なのかもしれません。
運用上もわかりやすいし。




Unityで使う .gitignore

githubに .gitignoreのリポジトリがあります。
(なんかややこしい日本語ですが)



gitbub / gitignore



ここを見ると各種言語用に大量の .gitignore が登録されています。

この中に

Unity.gitignore

が下の方にあるのでとりあえずこれを使うと面倒が無い感じです。
あとは各自の好みで追加したりです。


2014年9月11日木曜日

Unity - adb.exeの不具合

ちょっとUnity使用中に謎の問題が起きたので調査&メモ。


■問題点

Unity上でPlayしたときに以下のようなエラーがでて止まる。

Socket: connect failed, error: Operation has failed with error 0x2747: システムのバッファー領域が不足しているか、またはキューがいっぱいなため、ソケット操作を実行できませんでした。
(0)
connect failed




■環境

Windows7x64
Unity 4.5.2f1


■原因らしきもの

ポートが食いつぶされてる(?)様子。
問題発生直後 netstat でみると ループバックアドレス(127.0.0.1)で大量の TIME_WAIT が見える。

TCP   127.0.0.1:7201     マシン名:65324    TIME_WAIT
TCP   127.0.0.1:7201     マシン名:65326    TIME_WAIT
TCP   127.0.0.1:7201     マシン名:65327    TIME_WAIT




と、大量にポートを消費し尽くして枯渇後停止している様子。
この状態ではポートが枯渇しているのでWebブラウザも一切閲覧不能になる様子。

デバッグしているUnityのコード内ではTCP/IPは使用していない。もちろんループバックアドレスも。


■問題発生時の状況


問題発生時に TCP  127.0.0.1:7201 をつかんでいるプロセスを特定。

adb.exe だった (またキミか・・・・)。

一度この状態になると adb.exe を kill しても問題の状態は復旧しない。
Unityを終了させると復旧する。

なんともかんとも・・・。
心あたりとしては、しばらくまえに Android SDK を 20140702版にアップデートしたくらい。


少し情報を探してみるとありました → Android Open Source Project - Issue Tracker

そのものズバリが、
2014/8/19付け 「Issue 75016: so many port forwarded to 5037 after opening eclipse
さらに 2014/11/25付け で Issue 62784 を発見。

ポート番号は違いますが、Android実機をUSBに挿したままな点も同じなのでタブンこれに類する問題だと思われます。

■対策

修正コードはマージされた風に読めますが、まだ正式版に反映されていないのかもしれない。

とりあえず発生条件のひとつに「実機がUSB接続されている」というのがありそうなので、不要なときは極力抜いておくようにしてみます。

どうも adb.exe はいろいろ問題が起きますね・・・。


追記:やはり実機をUSBから抜いておけば発生しません。
とりあえずこれで回避運用。



2014年6月24日火曜日

Unity Remote4

遅ればせながらUnityを4.5にVerUp。

Unity RemoteもVer4になっていたので、設定をメモ。

※Unity Remote4 は Unity4.5必須。Unity4.4以下では動作しない様子。

設定

  1. Unity4.5を起動。
  2. Edit > Project Settings > Editor
  3. Inspectorウィンドウに Editor Settings が表示される。
  4. その中の Unity Remote 欄を設定する。
    今回は Android機に接続するので Any Android Device とした。

  5. 注意点: このままだと Android端末が認識できない。
    上記設定後、一旦Unity4.5を再起動する必要有り。
  6. Unityから何か実行する。
    PC画面とAndroid端末の両方で実行画面が動く。
    Android端末のタッチパネル等で操作可能。

おまけ

Windows7x64 でサスペンド&復帰後はUSB経由でAndroid端末を認識できていない場合がある。
一旦USBケーブルを抜き挿ししなおすと再認識してつながる。

2014年4月23日水曜日

Unity用Avastの設定

最近Avastをアップデートしたところ、Unityの起動がやたら遅くなった。


どうも Deep Screen というものが作動しているらしく、これが原因。
「未知のファイルが実効された場合に、より良い判断を下すことができるようになります」とある。
一応、遅いながらもUnityは起動できるので「より良い判断」がされているようだが・・・あまりに遅いので回避を講じてみた。



Deep Screen自体を全て無効にする場合:

  • Avast設定画面>設定>アンチウィルス画面 内の「ディープスクリーンを有効にする」のチェックを外す。


全て無効だと心配(?)な場合は、個別にディレクトリ指定もできるので、

  • Avast設定画面>設定>アンチウィルス画面 内の下方の「スキャンから除外」欄の「ディ-プスクリーン」タブにて除外対象のフォルダパスを追加する。

    Unityなら、
      例:C:\Program Files (x86)\Unity

    adb.exe はAndroid SDKにあるので、SDKのフォルダを指定
      例:C:\Android\adt-bundle-windows-x86-20131030\*

    ※一応ディープスクリーンのみの除外に指定。「ファイルのパス」タブで指定すると多分、ウィルススキャンそのものも除外されるようなので。


今のところ はUnityとadb.exeくらいしか気にならないので、上記にて個別指定して回避して運用してみることにする。