ラベル 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くらいしか気にならないので、上記にて個別指定して回避して運用してみることにする。


2014年2月20日木曜日

Unityが終了しない問題

たまに Unityが終了しない時がある。

画面がフリーズしたようになり、ずっと残ったままになり、正常終了しない。

しばらく タスクマネージャから強制終了させていた。
どうも adb.exe をタスクマネージャから強制終了させると、止まっていたUnityも終了する。

adb.exeに引っかかってるような気配?


以下のバッチを作って回避。
adb を起動後、Unityを起動するバッチ。



----- unity.bat

@echo off

cd C:\Eclipse_Android\adt-bundle-windows-x86-20131030\sdk\platform-tools

adb devices

cd C:\Program Files (x86)\Unity\Editor\Data\PlaybackEngines

"C:\Program Files (x86)\Unity\Editor\Unity.exe"
-----

各Pathは当環境下固有なので、読み替えが必要。



追記: なぜかカレントディレクトリ化の adb.exe がパス無しだと起動できなくなったので、
フルパスで書くように修正。

C:\Eclipse_Android\adt-bundle-windows-x86-20140702\sdk\platform-tools
の、部分がAndroid SDKでadb.exeがあるパスなので、各自環境のAndroid SDKのものに書き換える。

----- unity.bat ここから
@echo off

REM  Must be change path that your Android platform-tools directory
cd C:\Eclipse_Android\adt-bundle-windows-x86-20140702\sdk\platform-tools
C:\Eclipse_Android\adt-bundle-windows-x86-20140702\sdk\platform-tools\adb devices


REM  Installed Unity path. wotk fine maybe to no edit.
cd C:\Program Files (x86)\Unity\Editor\Data\PlaybackEngines

"C:\Program Files (x86)\Unity\Editor\Unity.exe"
----- unity.bat ここまで

2014年1月29日水曜日

Unityで リモートデバッグ for Kindle Fire HD8.9

一般的なAndroid機だと GooglePlayから「Unity Remote」 ダウンロード&インストールらしい。
しかしKindleは通常GooglePlayにアクセスできない(できるようにするとアマゾンの保証外になる
Amazonのアプリストアには当然無いデス。

■前提環境

  • Android SDK,、Unityがインストールされている。
  • UnityからPlayボタンでコンパイル&Android機へ読込&実行できる環境ができている。
  • ADB環境がPC、Android共にできている(できていないと実機へ読込できないと思う)。
  • つまりは基本的にUnityでAndroidアプリが開発できる環境がある。


■ダウンロード

GooglePlayにはつなげないということで直接 apkファイルをダウンロードすれば良い。

http://files.unity3d.com/ricardo/AndroidRemote.apk



■Kindle FireHD8.9にインストール

Kindle上部スワイプ>その他>端末>アプリケーションのインストールを許可>オン。

これをUSB経由でKindleに放り込み&ES3等のファイラーからインストール。
※ES3はアマゾンアプリストアにあるファイラーのアプリ。無いといろいろ不便。
※インストール後は、インストール許可をオフしても良い。


■リモートデバッグ

 Kindle本体に「Remote」というUnityマークのアプリが追加されていることを確認。タップして起動すると待機画面になる。
PC上でUnity起動。何かAndroid用プロジェクトをPlayボタンでRunさせる。
PC画面が通常通り実行画面になる。この時Kindleの画面も自動的に同じ画面がでる。


■活用について少し補足

まずちょっと注意点というか認識の違いがあった。
私的には一般的に「リモートデバッグ」だとこの場合は、
  • 主はターゲット機=Kindle
  • 副がPC=デバッガ
というのがリモートデバッグ的なもので、

  • Kindle(Android機)上でターゲットコードはRunningする。
  • それをPC側で覗きみたり、ログをモニタできる。

目的のオブジェクトコードは実機で動作しているという前提。

しかしこのアプリ「Remote」は様相が異なる。
どうもこれ、UI部分だけをRemoteアプリがフックしてUSB経由でPC側に投げている気がする。
つまりコード自体はPC上で動いている。

なぜそう思ったかというと

  • 実機なら30fpsくらいのアプリが60fps以上で常に動いてる。 
    CPUパワーありすぎ。
  • Kindle側の画面のグラフィックが荒い。
    多分Kindle上でレンダリングしていない。PC側のレンダリング結果の画面イメージを転送して表示してる感じ。
ということは、Android実機上に依存するAPI/ライブラリやその他情報にはアクセスできないような気がするのだけどどうなのか。
※追記:↑ やっぱりできないぽい。Activityへのアクセスがなんかうまくいかない。さすがにそこまでは贅沢か。


便利な点もあるがちょっと微妙な点もある。
  • Kindle(Android)側でタッチパネルをタッチするとPC側画面が反応する。加速度センサも有効。
    これは便利。
  • デバイス筐体基準の論理画面回転位置はPCのものを返すようだ。
    コードはPC上で動いているので、そのAPIはどうやらPC上での状態を返す。
    これで何が起きるかというと、Kindle側で90度回転したつもりでもPC上では90度回転しないので整合しない。この手のデバッグは無理。
    ※追記:PC画面に対して実機はなぜか180度回転して表示される。
などなど。

かなり限定的ですが実機タッチで操作できるのはちょっと便利。開発環境的に入れておいてもいいかもです。










2014年1月14日火曜日

UnityでエディタをVisual Studio2012にする

Unity付属のエディタは悪くないのだが、漢字FEPとどうも相性が悪く、1日数回文字入力不能に陥る。

開発言語がC#ならVisual Studio2012を外部エディタにする方法があるとのことで試してみた。


【起動用バッチ作成&配置】
以下のような感じで作成。
C:\Program Files (x86)\Unity\あたりに入れたいところだが、アップデートのアンインストールで消える可能性もなきにしもあらずなので、どこか別なところに置きたい。
ここではc:\bin におくとする。

ファイル名: unity-executable.bat

Start "" %1

【Unityでバッチを指定する】

Edit > Preferences > External Tools > External Script Editor >Brows にて、先のc:\bin\unity-executable.bat を指定する。

一応 Assets上右クリックから Sync MonoDevelop Project を押しておく。

これでダブルクリックでVisual Studio Express2012を起動できるようになる。


【Visual Studio2012のカスタマイズ】

インデント形式はK&Rスタイルにしたいので、メニューバーから ツール>オプション>テキストエディタ>C#>書式設定>改行>中かっこの改行オプションで、ここのチェックを全部外す。


【デバッガ】

標準のMonodevelopエディタだとデバッガが起動できるらしい。
Visual Studioではデバッガはさすがに動かないのか?
どうやら調べてみると、無償では無理な様子。

VS2012 Pro版(有償)+有償プラグイン(99$/249$)ならできるらしい。
つまり公式には無理ということで、サードパーティのプラグインを用いるという話。

しかしさらに調べると無償版のVisual Studio Express2012はプラグイン自体が使えないらしいので無理。※Expressではない製品版のVisual Studioが必要ということ。

デバッガを使う為には、エディタ設定をMonodevelopに戻す必要有り。う~ん、悩みどころかも。





※追記1:
Monodevelopエディタのデバッガ機能は普通に良くできています。便利です。
結局Monodevelopエディタに戻しました(´・ω・`)
丁度VerUpもきたので少しは安定してくれるといいんですけどね~。

※追記2:
Unityバージョン4.3.4.f1ではIMEで文字入力不能になることはなくなりました。改善された感じ。
ただしマルチバイト対応は完全とは言いがたく、稀に行ズレ表示とかしますがそれほど致命的ではないので。MonoDevelopエディタでいいかな~と思う今日この頃。




2014年1月7日火曜日

MonoDevelopの自動フォーマットをK&Rスタイルにする

Unity標準のエディタ MonoDevelop の自動フォーマットをK&R形式にする方法。

MonoDevelopエディタ上から、
メニューバー Project > Solution Options
左ツリー Source Code > Code Formatting
右ペイン内 C# Source code(Custom) をクリック&プルダウン
K&R style を選択

※他にもプリセットのスタイルが用意されているのでここから変更可能。


MonoDevelopは起動が重かったり、その他いろいろ問題が多いらしい。
しかし標準エディタだけに自動補完機能など便利なのでとりあえず使ってみる。