Unityで作ったアンドロイドアプリが吐くログを確認する方法
にあるadbというコマンドを使うことでログを見ることができます。
Android SDKへのパスは、Android Studioを立ち上げて、「Android Studio」->「Preference」->「Android SDK」として、上の方にあるAndroid SDK Locationというところに書かれています。
自分の場合は、.bash_profileに
を追記して使っています。パスを通した後、
adb logcat
でログを見られます。しかしこれだと、実機側から吐き出されるありとあらゆるログが見えてしまいます。
adb logcat | grep Unity
とすることで、Unityで作ったアプリの吐くログのみを見ることができます。
typeface animatorとoutlineの併用で、ちょっとハマった
Typeface Animatorという超絶簡単にオシャレにテキストを動かせるAssetがあります。
https://www.assetstore.unity3d.com/en/#!/content/37445
先日、こちらのアセットとOutlineコンポーネントと一緒に使ってたらうまく動かなくてハマったのでメモ。
どういうふうになっていたかというと下のような感じにアニメーションしてしまう。
本当は↓のようになって欲しい。
これはコンポーネントの順番を入れ替えれば良いだけでした。
Outline
Typeface Animator
の順になっていたのを...
Typeface Animator
Outline
の順にすればOK
ちなみに、Shadowコンポーネントでも同じようなことが起きるようです。
CosやSinをテーブル引きにする効果
-
-
- -
-
追記 2017/2/8 23:20
各所からツッコミを受けました。
テーブル引きの恩恵を受けるようなコードは、現在の実践環境ではあまりなく、普通に関数を使ったほうが有利というのが説が多いです。
以下のテストはキャッシュが効きやすい状態のテストなので一応、テーブル引きが勝っていますが、結構特殊な状況です。
ほんとうは、ちゃんと実際のゲーム中で計測するべきなんですけど、すいませんm(_ _)m
速度的なメリットは怪しいけどテーブル引きのメリットは、
通信量を落とせるとか(角度をfloatの32bitじゃなく8bitとか16bitで持ちたいとき)
値が実行環境に依存しないとか
というメリットがあると言われ、自分も納得しました。
-
-
- -
-
CosやSinをテーブル引きにする効果
ゲーム制作において、高速化のためにCosやSinといった関数をテーブル引きにするというのは、よくある話である。
自分のゲーム制作環境でも少しでも処理を軽くするためにテーブル引きSin,Cosを作ってみようかと思ったのだけれど、そもそもどれぐらい処理の高速化が見込めるのか、Unity上で試してみた。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class TestScript : MonoBehaviour { public int loopCount = 10000000; System.Diagnostics.Stopwatch stopWatch = new System.Diagnostics.Stopwatch(); public int tableSize = 360; public const float PI2 = Mathf.PI * 2.0f; float[] cosTable; void Start () { cosTable = new float[ tableSize ]; for( int i = 0; i < tableSize; ++i ) { float theta = (float)i / tableSize * PI2; cosTable[i] = Mathf.Cos( theta ); } } [ContextMenu("Test Mathf")] void TestMathf () { stopWatch.Reset(); stopWatch.Start(); float sum = 0.0f; for( int i = 0; i < loopCount; ++i ) { sum += Mathf.Cos( (float)i ); } stopWatch.Stop(); Debug.Log( "time : " + stopWatch.Elapsed + " sum, " + sum ); } [ContextMenu("Test Cos Table")] void TestCosTable () { stopWatch.Reset(); stopWatch.Start(); float sum = 0.0f; for( int i = 0; i < loopCount; ++i ) { sum += getCosFromTable( (float)i ); } stopWatch.Stop(); Debug.Log( "time : " + stopWatch.Elapsed + " sum, " + sum ); } int getCosTableIndex ( float theta ) { return (int)( theta / PI2 * tableSize ) % tableSize; } float getCosFromTable ( float theta ) { int index = getCosTableIndex( theta ); return cosTable[ index ]; } }
1000万回、Cosを計算して加算した結果、自分のMacbook Pro上で、Mathf.Cosは0.552秒、tableを使ったCosは0.453秒とTableを使ったほうが20%ぐらい高速だった。
もっと差が出るかと思っていたのだけど、そうでもなかった。
tableを使った方は精度がイマイチなのでご利用は計画的に。
UnityException: Unable to install APK! Installation failed. See the Console for details
UnityでAndroid版をBuild And Run しようとした時に、突如として表題の例外が発生するようになって困った。
こちらに解決策が↑
Player Settings -> Other Settingsで、Bundle Version Codeをあげたらインストールできた。
たまにUnityが落ちて、意図せずBundle Version Codeが下がっていることがあるので注意。
2017年、Vim周り見直し
半年に1回は見直しています。今回は結局大して変えませんでした。
世間では、Neovimに乗り換えましたとか、プラグイン管理をdein.vimに乗り換えましたという人が多いようですが、自分はNeovimは、まだ不安があるのと、そんなにメリットが分かっていないので、もうちょい様子見。
結局 最新のKaoriya版MacVimに。
dein.vimも設定ファイルを書き換えるのがめんどくさいのと、Neobundleでも速度に満足しているので、今回は見送り。
継続して使用するプラグイン
unite
インクリメンタルサーチで色々探して、色々出来る
unite help
全ヘルプ内をインクリメンタルサーチで探せて便利
vim-indent-guides
インデントに色を付けて見やすくする
vim-quickrun
コードをすぐに実行して確認
neco-look
lookを使って英単語保管機能
vim-bufonly
BufOnlyで自分以外のbufferを削除する
syntastic
syntax checkプラグイン
vimfiler
ファイラープラグイン。あまり使いこなせていない。
lightline
挿入モード、ヴぃジュアルモードなどのモードが見やすくなる
今回から入れてみたプラグイン
vim-colors-solarized
カラースキームsolarized。長いことdesertで固定されていたので、ちょっと気分を変えてみることに。
vim-closetag
tagを閉じてくれる
vim-quickhl
一度に複数の検索結果をそれぞれ異なる色でハイライトできる
yankround
ペースト時にyankの履歴を辿れる
使用を停止、もしくは一時停止するプラグイン
vim-trailing-whitespace
行末にあるスペースを可視化してくれる。
見えると、消したくなる。そして消すのがあまりにめんどくさいので、使わないことに。
unite-mark
マークした箇所をUniteで探して飛べる
結局、マークをあんまり使わなかった
vim-visualstar
ビジュアルモードで選択して、*を押したときに選択した内容で検索をできる。
結局、あんまり使わなかった
AnsiEsc.vim
ログファイルを色づけしてくれる
結局、あんまり使わなかった
ctrlp
yankroundと一緒に使うことでyankの履歴を表示して選択して、ペーストってできる。
自分の環境では何故かうまく動作しなかったのと、Unite yank で良いかなぁと。