2014年12月30日火曜日

MonoDeveloperでショートカットキーの不具合

MonoDeveloperの設定を変えてみたらショートカットキーがおかしくなるなりました。
全選択→ズームインになったりとか。。アプリを開くたびに挙動が変わることも。

解決方法

performance>言語>ユーザーインターフェイス>デフォルトに変更する。

2014年12月23日火曜日

Mac miniスリープ復帰時に画面が砂嵐になる

 Mac mini 2014でスリープから復帰すると画面が砂嵐状態になることがあります。
この問題はMac mini 2012にもありました。こちらはHDgraphicsの問題と言われています。
問題となる接続方法はMacのHDMI出力を使った場合です。
HDMIからHDMIまたはHDMIからDVI接続した場合が該当します。

解決方法

砂嵐になったディスプレイの電源を入れ直すか、ディスプレイのinputボタン(アナログ/デジタル切り替え)を押して再認識させる。
mini display port(Thunderbolt接続)で接続する。mini display portならd-subやdisplay portなども問題ありません。
 Mac mini 2014の場合はgpuのバグというよりもディスプレイとの相性かもしれません。

2014年12月20日土曜日

unity4.6.1のinputでキーボードのカーソルキーとスペースキーの組み合わせが機能しない。

unity4.6.1で開発中にunityのバグを発見しました。
矢印キー(左と上カーソル同時押し)中にスペースキーが反応しません。
"←+↑+space"のspaceだけinputの入力が拾えません。
他の組み合わせは問題なく入力できます。
スペースキー以外を使えば問題ありません。
jisキーボードのせいかも?

2014年12月17日水曜日

大砲で玉を発射するサンプル

玉にはリジットボディをつけてプレファブ化してインスペクタから使用します。
爆発エフェクトも同じように実体化して数秒後にオブジェクトを削除するれば良いです。
prefabは発射する玉。parentはオブジェクトを作成する階層
    public void Hassya (GameObject prefabTransform parent)
    {
        // インスタンス生成
        GameObject gameObj = Instantiate (prefabas GameObject;
        Transform tran = gameObj.transform;
        // 親設定
        if (parent != null) {
            tran.parent = parent;
        }

        tran.position = new Vector3 (parent.position.x2parent.position.z);
        
        tran.rigidbody.AddForce (3003000);//右方向へ発射
        
        Destroy (gameObj5.0f);//5秒後にオブジェクトを破棄
    }

2014年12月12日金曜日

3Dモデリングフリーソフト

 unityは標準で3Dモデリング機能を備えていません。
立方体や球体を組み合わせて3Dキャラを作成することも可能ですが単純なものしか作れません。複数オブジェクトの集合だとキャラクターコントロールクラスとの組み合わせもよくありません。

おすすめの3Dモデリングフリーソフト

Blender(win,macなどで使えるクロスプラットフォーム)

理由は


  • 多機能(有料ソフトと同等)
  • 永久無料(元は有料ソフトでしたが今はオープンソース)
  • osを選ばない
  • ファイル形式を意識せずにunityに取り込める

などです。
 バージョン2.72からボーンもサポートされて不自由しない出来になりました。
2.60から日本語にも対応しています。

Mac版のUnity4.5から4.6へアップデート方法

Mac版のunityもWin版もアップデート方法は同じです。
インストールと同じ手順を行うだけでアップデートできます。

アップデート手順

1.公式からinstallerをダンロードします。
2,ダウンロードしたファイルをダブルクリックして実行。 
3. pkgファイルをダブルクリックするとインストールが始まります。
 4.特に設定はいりません。アプリケーションフォルダにインストールされます。
 5.インストール完了後にunityでバージョン確認。
今まで使用していたプロジェクトも認識済みです。
unity4.6からはuGUIが使えるようになり、グラフィカルにGUIを作ることができます。
4.6は長いβテストを隔ててきたのでテストは十分と思いつ4.6.1まで待ってインストールしました。

2014年12月11日木曜日

iPhone6の発売停止理由

 アップルストアのiPhone6販売が停止した理由についてはまだ公式な回答はありません。たぶん単純に在庫不足なのでしょう。
何故在庫不足になったかと言うと、iPhone6の値上げと更に円安が進んだためだと思います。
 アップルストアのコンビニ払いは支払猶予が2週間あり、支払いがなければキャンセルされます。コンビニ払いの後払い仕様を利用して値上げ前にアップルストアで安くiPhoneを大量購入して、その後に転売する(外国かも)ことができるからです。

コンビニ払いの支払期限


  • Amazonは1週間
  • そのたネット販売店で3日〜10日
  • アップルストア2週間

 iPhoneは代理店販売されることがないのでMacやiPadなどと違い値動きがないのも特徴です。個人でも転売しやすい商品です。
一昔前のweb販売店はカートに入れておくだけで値段をキープできました。
※ビックカメラ.comなど
価格.comで値動きが早い販売店だと数分でカート内の商品が無効になります。

アップル社の開発拠点が日本の神奈川県にできる

iPhoneのシェアが高いおかげか、アップル社の開発拠点が日本に作られるそうです。
現在、開発拠点はアメリカにしかありません。日本に拠点を作る理由はなんだろう?
とりあえず日本語サポートが強化されれば良いです。

2014年12月5日金曜日

iOSアプリストアの認証メール

iTuneConnectから以下のメールが届きアプリ審査に合格しました。
件名: The status for your app, アプリ名 (アプリid), is now Ready for Sale.
1度目の審査はテストが正しく行われなかったようでリジェクトされましたが、
今回(2回目)はメモ欄(テスターへの指示)を書き加えるだけで審査が通りました。
バイナリの変更など他の修正はしていません。


2014年11月30日日曜日

Yosemiteでwifiの電波強度を調べる

以下のコマンドをアプリ->ユーティリティ->ターミナルで実行
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s
電波強度(rssi)やチャンネル、暗号方式しを調べられます。
電波強度は0から-60が良い、-60代は普通、-70台は弱いと判断できます。
-80〜-100だと不安定になります。
Yosemiteだと-80〜-100でなければアイコンのアンテナ本数は最大に表示されます。

2014年11月28日金曜日

unityスマホアプリの動作を軽くするには1〜ドローコールを減らす

作成したアプリをスマホで動かすと動作が重いことがあります。
近年、スマホのスペックはムーアの法則並みに進化していますが、それでも消費電力重視のcpuではデスクトップパソコンには遠く及びません。

unityアプリを軽くするには

unityの描画はドローコールという単位で行われています。
描画回数を減らすことでアプリの動作を滑らかにできます。

  • 1マテリアル実体=1ドローコール
  • 1gui=2ドローコール

jointやアニメーションもドローコールを大量に消費します。
スクリプトからマテリアルを使用する場合はfindやinstantiateを使うと実体が増えてしまいます。resource.loadから直接参照先を渡せば問題ありません。

2014年11月27日木曜日

iosアプリの審査で日本語説明文が伝わらない問題

 アプリの説明に英語のローカライズがない場合に、アプリが正しく審査されないことがあります。
具体的には、アプリの画面に「ひらがなで入力してください」と書いてある直下の入力欄に漢字や英語の入力をして”このアプリ先に進まないぞ?”というふうにリジェクトされることがよくあります。ご丁寧に説明を無視した入力の画面キャプチャまで添付してくれますw
 iosアプリの審査はアメリカで行われています。日本語の読めるレビュー担当者はいません。そのためアプリ登録時の説明文に英語のローカライズがない場合は誰かが翻訳してレビュー担当者に伝えています。どのタイミングで誰が日本語の翻訳をしているのかは不明です。

解決方法

アプリ登録時のメモ入力欄にテスト方法の指示を書くか、英語のローカライズを用意する。それでもだめなら何度もレビュー提出するとアップルから電話がかかってくるのでそこで説明するしかありません。ある程度日本語を話すことができる担当者から電話をくれます。ただ会話話できても文章は読めないようです。


YOSEMITEのパスワード入力をしない方法

起動時の自動ログインはユーザとグループのログインオプションから設定できます。
スリープ復帰時のパスワードロックはセキュリティーとプライバシーから設定できます。
 windowsと違い、アカウントのパスワードは必須です。
なのでパスワード入力を省きたい場合は、自動ログインと自動ロックを無効にする必要があります。

2014年11月25日火曜日

mac yosemite 日本語入力バグ

日本語入力がとつぜん大文字英数に切り替わることがあります。
ソフトを開きなおすことで一時的に解決します。
どうやらIMEの変換機能のバグのようなので、
設定画面のキーボードから変換学習のリセットを行うと直るかもしれません。

AdMob広告表示プラグイン

unity用のプラグインを使用して広告を表示できるようにしました。

使用した環境

  • mac mini 2014
  • yosemite
  • xcode6.1
  • unity4.5.5
  • GoogleMobileAdsSdkiOS-6.12.2 : https://developers.google.com/mobile-ads-sdk/download?hl=ja#downloadios
  • プラグインはこちら: https://github.com/mikito/unity-admob-plugin

 androidの場合はプラグインをインポートしてAdMobManagerプレハブをヒエラルキーに追加するだけで広告が表示できます。id入力や広告の位置はインスペクタで入力できます。
 iosの場合はワンステップ必要でxcodeから以下のフレームワークの追加が必要になります。


  1. MessageUI.framework
  2. AdSupport.framework
  3. StoreKit.framework
  4. CoreTelephony.framework
  5. EventKit.framework(gui使用時)
  6. EventKitUI.framework(gui使用時)

xcodeのBuild Settings->Other Linker Flagsをダブルクッリックして-ObjCを追加します。
以上でiosアプリに広告を表示できます。

注意点

iosシュミレーターでは広告を表示できません。
最新のAdMob SDKを使用したほうがいいかもしれません。
https://developers.google.com/mobile-ads-sdk/downlo
ad?hl=ja#downloadios
SDKの上記画像ファイルをプロジェクトのlibrarysに上書きします。
エラー発生時は、Build Settings->Search Pathsを確認してください。


”($XXXX)”などダブルコートで囲まれたパスがある場合はダブルコートを取り除いてください。1〜2つ見つかる時があります。
ヘッダーパスは変更しないでください。

備考

フレームワークを自動的に追加してくれる管理ソフトもあります。
sudo gem install xcodeproj


2014年11月24日月曜日

unity: 定数の修正が反映されない

publicにしている定数の初期値をソース側で変更しても反映されないことがあります。
これはインスペクタ側の初期値が優先されるためです。
そのため、ゲームオブジェクトにpublic定数を含むスクリプトを貼り付けた際に使用していた定数の値がインスペクタ上で生き続けています。
インスペクタに依存、表示させないようになるには”HideInInspector”を変数の上につけます。

使用例

public class クラス名 : MonoBehaviour {
[HideInInspector]
public int TEISU=100;//インスペクタに表示されなくなる
}

2014年11月23日日曜日

unityアセットストアの日本語入力が二回判定になる

unityアセットストアの検索で日本語入力すると2連続入力されてしまう。
たとえば「あ」と入力すると「ああ」となります。

環境


  • mac mini2014 2.8G
  • os yosemite
  • unity 4.5.5(現時点最新)
  • キーボード win用のjisキーボード

英数入力なら問題ありません。
unity内部のアセットストアウインドウはunityで作成されているようです。
そのためグラボとの相性やら色々と依存しています。
macなのでdirectXの設定を変えてみるなどはできません。
キーボードが問題なのかな

2014年11月22日土曜日

"_OBJC_CLASS_$_EKEvent", referenced from:

広告を表示するアプリで以下のエラーが発生・

"_OBJC_CLASS_$_EKEvent", referenced from:

解決方法

フレームワークの追加で解決します。
EventKit.framework
EventKitUI.framework

2014年11月21日金曜日

xcodeエラー:Warning: Error creating LLDB target at path

64ビットのisoシュミレーターを使用すると以下のワーニング?エラーが発生します。

Warning: Error creating LLDB target at path '/Users/yuuki/Library/Developer/Xcode/DerivedData/Unity-iPhone-efzkqwujfknmbrclodikqenirxdl/Build/Products/XXXX.app'- using an empty LLDB target which can cause slow memory reads from remote devices.
ようは32ビット向けのアプリだと性能を発揮できないということです。
arm7(64)でコンパイルをすれば表示されなくなります。
64ビットを指定したからといって32ビット機でアプリが使えないわけではないようです。
32ビットと64ビットアプリが両方作成されるようです。

xcode6.1 iOSシュミレーターを日本語入力するには

xcode6.1はiosシュミレーター側から日本語化ができません。
日本語入力をできるようにするには以下の手順が必要です。

手順

1,日本語入力用のスキーマを作成します。
product->schema->new schema
 2,適当なスキーマ名をつけます。
 3.作成したスキーマがproduct->schemaに表示されるので
チェックを入れます。
4.product->schema->edit schemaを開きます。
argumentsのArguments Passed On Launchの+ボタンを押して
[-AppleLanguages (ja)]と入力します。
 
 iosシュミレーターを起動すると日本が入力できます。
プロジェクトごとに日本語入力ようのスキーマを用意すれば
各iosシュミレーターに反映されます。

2014年11月19日水曜日

unityエラー: "_NSSQLiteStoreType", referenced from:

GooglePlayGameServicePluginを使用したxcodeprojectで以下のエラーが発生。
"_NSSQLiteStoreType", referenced from:
CoreData.framework を追加することで解決します。

unityエラー: "_CTFontManagerRegisterFontsForURL", referenced from:

グーグルプレイゲームサービスのプラグインを使用しているxcodeプロジェクトでエラーが発生しました。「"_CTFontManagerRegisterFontsForURL", referenced from:

解決方法

CoreText.frameworkを追加します。

unityエラー: !dest.m_MultiFrameGUIState.m_NamedKeyControlList

キーボードからinputoするごとにコンソールにエラー「!dest.m_MultiFrameGUIState.m_NamedKeyControlList」と表示されるようになりました。
どうやらunityの一時的なバグなようでプロジェクトを開きなおすと表示されなくなりました。

2014年11月18日火曜日

Q.実機無しでもアプリの公開はできますか?

Q.実機無しでもアプリの公開はできますか?
A.可能です。

Apple developerサイトのprofileにdeviceのidを登録する必要がありますが、適当な番号で一つだけ登録しておくだけで問題ありません。
 ただし、iosシュミレーターにはできないことやバグがあります。iosアプリはappleがテストをしてくれますが時間がかかります。実機を用意してしっかりテストをしたほうが効率的です。
 どちらにせよ全ての実機やiosバージョンを用意してテストするのは難しいですね。

apple supportの保留音

そういえばapple supportの保留音がラップでした。
ノイズだらけのラップで煩かった…
次の曲も洋楽がながれて困惑しました。
音声付きの音楽を保留音につかうとか、日本のコールセンターなどではありえませんよね。

2014年11月17日月曜日

ビルドエラー_SKStoreProductViewController

admobのプラグインが入ったプロジェクトで以下のエラーが発生。
"_OBJC_CLASS_$_SKStoreProductViewController", referenced from:
objc-class-ref in libGoogleAdMobAds.a(GADOpener.o)
"_SKStoreProductParameterITunesItemIdentifier", referenced from:
-[GADOpener openInAppStore:fallbackURLString:] in libGoogleAdMobAds.a(GADOpener.o)
StoreKitフレームワークを追加すると解決します。

General,Capabilitys,Bulid Phases,Bulid Rulesが表示されない

xcodeを操作しているうちにGeneral,Capabilitys,Bulid Phases,Bulid Rulesが表示されなくなるときがあります。
代わりにinfoとbulid settingだけ表示されて困りました。
解決方法は以下の画面のGeneralまたはinfoの左にあるリストボタンを押して、自分の作成したアプリのアイコンを選択してください。

archiveを提出時のエラー

archiveを作成してsubmitボタンを押したら以下のエラーが発生しました。
itunes store operation failed. no software with CFBundleIdentifier of 'com.kaisya.sohuto' exists.続く
どうやらitunes connect(https://itunesconnect.apple.com/)にアプリ登録をしないといけないようです。skuの項目は任意の英数を入れれば良いそうです。

xcodeのidentityのissue

xcodeのidentityのissueボタンで以下のエラーが発生しました。
Unable to create a provisioning profile because your team has no devices registered in the Member Center. Please connect a device, enable it for development, and add it to the Member Center using the Organizer.
このエラーはテスト用の実機が登録されていないと発生します。
サファリでメンバーセンターを開いてCertificates, Identifiers & Profilesからdeviceを登録しましょう。
uuidはidentifierのことです。xcodeのウインドウ→deviceから接続している端末のidを調べることができます。

プロファイル作成のエラー

csrをキーチェーンアクセスから作成してアップロードしたところ以下のエラーが発生。
Error
We are unable to upload this Certificate file because it is invalid. Please check the file and try again.
 拡張子をcsrからcertSigningRequestに変更したら無事にプロファイルが作成されました。

FMOD failed to initialize Error initializing output device

iOSシュミレーターのバグ。

unity4.5.5+yosemite+xcode6.1

unityでAudioSourceを使用しただけのアプリをiOSシュミレーターで起動すると以下のエラーが発生し、音がでない。

Error loading /System/Library/Extensions/IOHIDFamily.kext/Contents/PlugIns/IOHIDLib.plugin/Contents/MacOS/IOHIDLib:  dlopen(/System/Library/Extensions/IOHIDFamily.kext/Contents/PlugIns/IOHIDLib.plugin/Contents/MacOS/IOHIDLib, 262): Symbol not found:

FMOD failed to initialize ... Error initializing output device.
(Filename: /Applications/buildAgent/work/d63dfc6385190b60/Runtime/Audio/AudioManager.cpp Line: 239)

An invalid object handle was used. 
(Filename: /Applications/buildAgent/work/d63dfc6385190b60/Runtime/Audio/AudioSource.cpp Line: 311)

実機なら問題ありません。

iOS Developer Programへ登録

アプリを公開するためにappleの開発者登録をしてみました。
現在は7800円で販売されていますが円安の価格が反映されると11600円くらいになるかもしれません。(99ドルで販売されている)
支払いはクレジット、appleのプリペイド、デビットカードが使えます。
早速登録してみて支払いも済ませたのですが、
1日経っても「Contact Us
We are unable to verify your identity. Please contact us for further assistance.
から進まなくなっていました。
Contact Us We are unable to verify your identity. Please contact us for further assistance.
ネットの情報を調べたところ、登録情報に日本語が含まれていると処理が止まることがあるそうです。ただし、アクティベーションメールがどうとかは古い情報です。2014年11月現在はアクティベーションコードを使用した認証を行っていませんでした。
自分の場合は英語で登録をしたいました。何が問題なのかは不明です。
apple support 0120 9333 88に電話をして確認したところ。
すぐに登録処理が音量しました。サポートディスクの人にapple diを伝えただけです。
登録が完了
登録が完了するとプロフィル作成のアイコンが追加されます。



2014年11月16日日曜日

macでunity開発の必要スペック

cpuはi3以上、メモリは4Gで十分だと思います。
unityとmonoとxcodeとiosエミュレーターとブラウザを同時使用してもi5 2.8Gデュアルコアでcpu使用率は50パーセント以下で冷んやり。メモリの実消費は4Gほどでした。(規模によります)
ストレージは128Gで十分です。
一通り開発環境を整えて50Gの消費です。
ただし、unityからxcodeプロジェクトを作成すると最低300M消費します。
 apkやappファイルを作成するとリソースファイル*4のステレージを消費します。
ダウンロードassetを沢山使うには128Gのストレージでは厳しいかも。
以上の点を考慮して余裕を持たせると

推奨スペック

メモリ8G
ストレージ256G



初めてのmacパソコン

mac mini 2014 2.8Gモデルを購入しました。
mac mini 2014 2.8Gモデルスペック画像
購入してまずすべきことは、
システム環境設定(ドックの歯車アイコン)から
キーボードとディスプレイの設定です。
ディスプレイはaltを押しながら解像度を変更
キーボードはキーボードの変更を押してjisキーボードを認識させます。
ちなみに日本語入力は窓+スペースで切り替えられます。
ショートカット関係はctlでなく窓キーを押します。
窓+cでコピーです。
バックスラッシュがアンダースコアになるかもしれません。
alt+yでバックスラッシュが入力できます。