Asset StoreのDetonator 〜というのをUnity2017にいれた際の対処

無料でめちゃくちゃクオリティの高い爆発できる「Detonaor〜」というassetを使っているのですが、

これ → Detonator Explosion Framework

Unity5以降を使っているとShader周りなどでエラーがでるのでメモ。


Shader error in 'HeatDistort': 'tex2Dproj': no matching 2 parameter intrinsic function; Possible intrinsic functions are: tex2Dproj(sampler2D, float4|half4|min10float4|min16float4) at line 42 (on gles3) Compiling Vertex program Platform defines: UNITY_NO_DXT5nm UNITY_NO_RGBM UNITY_ENABLE_REFLECTION_BUFFERS UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_NO_CUBEMAP_ARRAY UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER SHADER_API_MOBILE UNITY_HARDWARE_TIER1 UNITY_COLORSPACE_GAMMA UNITY_LIGHTMAP_DLDR_ENCODING

Asset自体Unity4までしか対応していないのもあり、
僕は、HeatDistort一旦シェーダー無効にして対応しました。

このasset昔からあるけど、マジ最強!

Unityで、実機だけデバッグログを表示しない設定

アプリを長期間かけて作っていると色々デバッグログを仕掛けたくなるもの、
これがどんどん増えていくと、リリースする前に一気に非表示にしたいもの。

で、スマホはデバッグログを表示しないで、Unity上で作っている際は一括で非表示する方法

Unity2017〜?用


void Awake(){ #if UNITY_EDITOR // Unity上で、デバッグログ出力 Debug.unityLogger.logEnabled = true; #else // それ以外(実機)はデバッグログを出力しない Debug.unityLogger.logEnabled = false; #endif }

Unity5系?用


void Awake(){ #if UNITY_EDITOR // Unity上で、デバッグログ出力 Debug.logger.logEnabled = true; #else // 実機はデバッグログを出力しない Debug.logger.logEnabled = false; #endif }

無効にするタイミングは一番最初にするように調整してね。

pythonをはじめて使った際のメモ 1

コメントアウト & 変数 & 演算

2系、3系かまずチェック大きく違う


$ python -V Python 3.6.4

実行


$ python

で対話式で実行。


$ python testfile.py

でファイルを指定して実行。

コメントアウト


# 行単位のコメントアウト

""" 複数行コメント アウトです。 """

def main(): """ test1 """ print "hoge" """ test2 """

このtest2の複数行コメントアウトはエラーになる。
文字列リテラルとなるためエラーになるようです。

変数


# 変数 hensu = "hello" print(hensu) # 定数 (pythonは定数という概念がないので、大文字変数なら定数として扱う風習がある INFO_URL = "http://teisu-hohohohohohhogegegeeegeg.com"

# 文字列変数(複数行) hukusuugyou = """111 222 333 444 555""" print(hukusuugyou) # 真偽値 flg = True # 大文字注意 flg = False

演算


print("hoge" + "hoge") # hogehoge print("hoge" * 5) # hogehogehogehogehoge これすごい

Unity ゲームなどで使う赤から青など徐々に色を変える計算

Unityで、指定色から指定色に切り替わる処理を書くが、毎回忘れてしまうので、メモ!

下記のように、赤から、緑など。通常の黒から白や、透過度を徐々に変えるのは簡単だが、
RGBをいじって、青から、赤などの色変化の計算はちょっと手間なので忘れてしまう。

指定の色から、指定の色に徐々に色が変わるサンプルスクリプト



// Color(0.17254901960784f ,0.074509803921569f ,0.062745098039216f); // スタートカ ラー // Color(0.97647058823529f ,0.83921568627451f ,0.31764705882353f); // ゴールカラー // グラデーションのポジションを管理する値 0f〜1f float currentPointColor = (float)gameCheckPoint / (float)goalCheckPoint; float r = (0.97f - 0.17f) * currentPointColor + 0.17f; // 指定の色から指定色へグラデーション。 float g = (0.89f - 0.07f) * currentPointColor + 0.07f; // 指定の色から指定色へグラデーション。 float b = (0.31f - 0.06f) * currentPointColor + 0.06f; // 指定の色から指定色へグラデーション。 scaffoldObj.transform.Find("background").GetComponent<SpriteRenderer>().color = new Color(r,g,b);

ポイント


float r = (0.97f - 0.17f) * currentPointColor + 0.17f;

R = (Rのゴール値 – Rのスタート値) * グラデーションのポイントを管理 + Rのスタート値 という意味

※RはRGBの赤

また、RGBの#ffffffなどのHEX値から、上記Coloe型の0f,0f,0fのフォーマットに変換する場合は、下記ツールを使うと簡単に変換できます。

#ff0000 → 1f,0f,0f 変換ツール

Mac Book Pro(high sierra)をつかっていて、残り容量が気になった際にみるところ

PCの容量を使っているところ横断でぱっと見る場合(コマンド使わない場合)

Cmd + Space で、「ストレージ」と検索すると、
ストレージの管理」がでるのでそれを開く。

不要なファイルを確認で、だいたい容量が大きいファイルを見つけられる。

コマンドでさくっと全体容量をチェック

まず空き容量をdfコマンドでチェック


$ df -h

a$ df -h Filesystem Size Used Avail Capacity iused ifree %iused Mounted on /dev/disk1s1 234Gi 210Gi 21Gi 92% 2517498 9223372036852258309 0% / devfs 184Ki 184Ki 0Bi 100% 638 0 100% /dev /dev/disk1s4 234Gi 2.0Gi 21Gi 9% 2 9223372036854775805 0% /private/var/vm map -hosts 0Bi 0Bi 0Bi 100% 0 0 100% /net map auto_home 0Bi 0Bi 0Bi 100% 0 0 100% /home

Capacity 92%なので、のこり8%の21Gしたない。。

どのディレクトリのどのファイルが大きいか掘り下げて探す


$ du -g -x -d 5 / | awk '$1 >= 5{print}'

パスワードを要求されるので、ログイン時に使用しているパスワードを入力する。パスワードは入力しても画面には何も表示されないので気にせず入力した後returnキーを押して実行すること。正しく実行されると、ルートから5階層下までのフォルダの容量を確認し、容量が5GB以上のフォルダがリストアップされる (出力結果の数字は各フォルダの容量 (単位:GB))。すべてがリストアップされるのには時間がかかるので、プロンプト (例:username-no-macbook:~ username$) が出て次のコマンドが入力できる状態になるまで待つこと。
#最後にリストアップされるフォルダ名が / のみの項目はファイル容量の合計値なので無視してよい

‘ 引用元 サイト: https://discussionsjapan.apple.com/docs/DOC-1081

iphoneアプリなど開発している場合

xcodeで一時ファイルや、もう使わないアーカイブファイルがのこっていてそれが
容量を結構逼迫している。
頻繁に開発していると普通に1週間で20Gとか増えている。

アーカイブファイル


$ cd ~/Library/Developer/Xcode/Archives

DerivedData


$ cd ~/Library/Developer/Xcode/DerivedData

iPhone Simulator


$ cd ~/Library/Application\ Support/iPhone\ Simulator

抹消したい記録を復活できてしまう魔法のウェイバックマシーン!

抹消したい記録を復活できてしまう魔法のツール

長く生きていると末梢してしまいたい記憶の1つや2つ、

そして4つや5つ、

はたまた、星の数・・・

消えたはずの過去の記事を見ることができてしまう

WayBack Machine

指定のURLを入力すれば、そのサイトの過去の情報がみれてしまう。

こんな感じ

ふつうに5年前とか、10年前まで、だいぶ昔の情報までも拾えてしまった。。

ただ、画像や装飾など、HTMLのタグなどは適宜変換されているので、
完全に過去の状態が見れるわけではないので、そこは注意

Androidアプリのよくあるイカしたアプリのダウンロードボタンの作成方法! と、流入元分析!

クレカの有効期限切れで、、サーバー落ちてましたw。。

SEOだいぶ下がったか、、泣

というわけで、泣く子も黙るわけでもない久々の更新

アプリDLボタンのバッジ作成ツール

ここからバッジをサクッと生成できるんす!

https://play.google.com/intl/ja/badges/

UTMソース や、UTMキャンペーン を指定して、

どのブログや、SNSから流入してDLしたなどがわかるようになってます。

レポートは、Google Play Consoleの下記画面から見れるようです。

UTMタグで獲得チャネルの分析

https://developers.google.com/analytics/devguides/collection/android/v4/campaigns#google-play-url-builder

GooglePlay向けのUTMタグ生成サイトが、404になっていて、
どこで、android用のUTMタグの正しい形式を確認すればとおもっていましたが、バッジ作成ツールで生成すればよかったんですね。
先程の、バッジツールで、UTMソースや、キャンペーンを指定するとタグが反映されるので、
そちらでわかります。


<a href='https://play.google.com/store/apps/details?id=[パッケージ名]&utm_source=[UTMソース]&utm_campaign=[UTMキャンペーン]&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'><img alt='Google Play で手に入れよう' src='https://play.google.com/intl/ja/badges/images/generic/ja_badge_web_generic.png'/></a>

この部分。


https://play.google.com/store/apps/details?id=[パッケージ名]&utm_source=[UTMソース]&utm_campaign=[UTMキャンペーン]

他にも便利なツールが色々

こちらはiOS/Androidのバッジも作れるすぐれもの!

http://mama-hack.com/app-reach/

関係ありそうなサイト一覧

UnityAndroidで、下記エラーがSDKやなにかを入れたタイミングでエラーを履くようになった。

確認環境
* Unity2017 2.0f1
* Gradleビルド

こんなエラーや、


Build failure com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Landroid/support/annotation/AnimRes; See the Console for details.

こんなエラーや、


UnityEditor.BuildPlayerWindow+BuildMethodException: 3 errors at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (BuildPlayerOptions options) [0x00207] in /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPlayerWindowBuildMethods.cs:172 at UnityEditor.BuildPlayerWindow.CallBuildMethods (Boolean askForBuildLocation, BuildOptions defaultBuildOptions) [0x00050] in /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPlayerWindowBuildMethods.cs:83 UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

こんなエラーや、


CommandInvokationFailure: Gradle build failed. /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/bin/java -classpath "/Applications/Unity/PlaybackEngines/AndroidPlayer/Tools/gradle/lib/gradle-launcher-2.14.jar" org.gradle.launcher.GradleMain "assembleRelease" stderr[ FAILURE: Build failed with an exception.

なにか原因かわからないため、解決するためにやったこと。

  • Player Settings の Publishing Setting > Custom Gradle Templateにチェックをいれ、
    カスタムのgradleをいじれる、mainTemplateをさわって、また戻したり。

  • Unityを再起動したり

  • Android SDKのToolsのAPIバージョンをあげたり。
    https://answers.unity.com/questions/1435579/how-can-i-fix-this-error-unityeditorbuildplayerwin.html

  • https://issuetracker.unity3d.com/issues/android-project-with-iap-plugin-fails-to-build-with-gradle-release-mode-only-and-throws-java-dot-io-dot-ioexception

Unityのバージョンを疑ったり

で、何かのタイミングで、エラーがでなくなり、無事APKファイルが履かれました…!

Unity で、Android gradle buildで、Multidexに対応する方法

UnityでAndroidアプリを作る際に、Multidexサポートに対応しないといけない場合に、
最初した際のメモ。

参考情報

https://forum.unity.com/threads/build-using-gradle-and-multidex-support.492117/

https://answers.unity.com/questions/1301593/android-gradle-build-error.html

要点

  • Custom Gradle Templateを使う (Build systemはgrandleに)

検証環境

  • MacOS High Sierra
  • Unity2017 2.0f3(Personal)