Unity2019 2.12f1で、AndroidのUnityロゴスプラッシュが紫色に

環境

  • Unity2019 2.12f1
  • MacOS 10.15.1
  • Androidビルド

上記環境で、Androidで実行するとスプラッシュから紫色になって、
logcatでエラーも吐かない原因不明の状態になった。

デフォルトのUnityロゴのスプラッシュさえ紫色に…

PlayerSettingや、Graphicsなどの設定おResetして、
デフォルトの状態にしても状態が回復せず、

別のSceneを読み込んでもデフォルトのskyboxが出るだけ。



原因がわからず、とりあえずUnityプロジェクトを新規作成し、
作ったデータをExportして移行したら…
直った!

Unity2019 2.12f1で、Androidビルド時に「Shader compiler: Compile Hidden/CubeBlend – Pass 0, Fragment Program: Internal error, unrecognized message from the shader compiler process. Please report a bug including this shader and the editor log.」

環境

  • Unity2019 2.12f1
  • MacOS 10.15.1
  • Androidビルド

Androidでいつものようにビルドしていると、下記エラーで表示される

Shader compiler: Compile Hidden/CubeBlend - Pass 0, Fragment Program: Internal error, unrecognized message from the shader compiler process.  Please report a bug including this shader and the editor log.

ググると下記記事に参考になりました。

https://forum.unity.com/threads/unity-2019-2-7-build-ios-crashes-in-shader-compile.757754/

Unity2019 3.0(beta)から、UnityShaderCompilerファイルをコピーし、
Unity2019 2.12f1のUnityShaderCompilerファイルを上書きすれば解決するとの事。

こういうフォルダにはいっている→「/Applications/Unity/Hub/Editor/2019.2.12f1/Unity.app/Contents/Tools/UnityShaderCompiler」

実際やってみたけど。
本当にエラーがなくなりました。

また、上記フォーラムにありがたいことのUnity2019 3.0(beta)のUnityShaderCompilerだけ添付してくれている人もいる。(Unityごとダウンローづする手間が省ける)

Macで、Unity2019でビルド時に何度も、「”〜〜”は、開発元を検証できないため開けません。」と出る場合

久々開くmacで、UnityでAndroidビルドしていると何度も下記エラーで、2時間ぐらいとられたので、メモ。

ビルドの途中で、何度も、「”arm-linux-androidabi-objcopy”」は、開発元が検証できないため開けませんと、ビルドがコケてエラーがでまくるので、注意。

下記対処法



2は、システム環境設定 > セキュリティとプライバシー を開いてもOK。

この時、4の対象アプリが表示されない場合は、一度、1のダイアログ上で、「キャンセル」をクリックして、3,4の画面を開くを「このまま許可」のボタンが表示されるようです。

すると次に、1のダイアログ画面がでた時は、「開く」のボタンが表示されているので、開くを押す。

これで、1つずつ新しいエラーを許可することで最後までビルドが走りました。

ただ、毎回ビルドが途中で失敗するので非常に面倒でした。


私の場合、この作業をAndroid-NDK周りのアプリが大量にひっかかるので10回程度繰り返しました。。。aabファイルだったので、一回一回のビルドが時間かかりたいへんだった。

まとめ

キャンセルして、許可して、今度同じエラーがでたときに「開く」を繰り返す。面倒だけど、がんばった。

git cloneで、「fatal: unable to access 〜Peer reports incompatible or unsupported protocol version.」

久々入るCentOS7のサーバで、git cloneしようとしたらこんなエラーが、

[root@hoge sandbox]# git clone https://github.com/〜〜〜〜〜.git
Cloning into '〜〜〜〜'...
fatal: unable to access 'https://github.com/〜〜〜〜〜.git/': Peer reports incompatible or unsupported protocol version.

curlが古いのが原因らしい。

[root@hoge sandbox]# yum update curl

curlをアップデートしたら解決。
無事git cloneできました。

Unity 1行で演出でクオリティアップするCameraPlayアセットめも

たった1行でこのクオリティのカメラ演出ができるAsset。

https://assetstore.unity.com/packages/tools/particles-effects/camera-play-60790

ちょっと購入してみたので感想メモ。

CameraPlay.Glitch(); //これでグリンチエフェクトが実現できる

using 〜〜も必要ない。 どんなけ楽なんだw

さすが有料な優良アセット。

定期的にSale等しているので要チェック。

ただ、Cameraを複数重ねて使っているとうまく動かない場合があるので要確認。あとスマホアプリで出す場合容量が膨れ上がる可能性があるので、不要な部分を削除するなり調整する必要がありそう。

あとwebのドキュメントもある
http://www.vetasoft.store/cameraplay/Effects

ここらへんもメモ

Note:

The effect is set by default on the main camera, if you want to change the current camera us CameraPlay.CurrentCamera and select the new camera All the other effect will use the new current camera.

CameraPlayのエフェクトをかける対象カメラを別のカメラに変更する方法

CameraPlay.CurrentCamera = anotherCam.GetComponent<Camera>();

Unity 「Screen position out of view frustum (screen pos〜」でCameraがおかしくなる

下記エラーが大量に、Unity2019 2.12f1にアップデート後に発動するようになった。

Screen position out of view frustum (screen pos 579.015625, 713.140625) (Camera rect 0 0 862 1002)
UnityEngine.SendMouseEvents:DoSendMouseEvents(Int32)

しらべてみると、MainCamera > orthographicsizeが「NaN」とおかしい値に!

実行まえは下記のように正しく入っている。

特にスクリプトでは参照以外にCameraの値を変える事はしていないのだが、 原因がわからずとりあえず、スクリプトでSizeを指定すると直った。

cam = GameObject.FindGameObjectWithTag("MainCamera");

cam.GetComponent<Camera>().orthographicSize = 7;

//float aspect = (float)cam.GetComponent<Camera>().pixelWidth / cam.GetComponent<Camera>().pixelHeight;

古いXcodeをアップデートしようとしても、エラーできない。

UnityHubで、unity2019を扱う際に、iOSビルドサポートが必要だが、 何度やっても、インストール途中で止まる。 このマシンでxcodeを1年近く使っていないのが問題か。
久しくアップデートしていないせいか、xcodeが起動しない。 xcodeのアップデートもうまくいかない。

install logは下記

Xcode[2358]: Package: PKLeopardPackage <id=com.apple.pkg.MobileDeviceDevelopment, version=10.3.9000000000.1.1488876279, url=file:///Applications/Xcode.app/Contents/Resources/Packages/MobileDeviceDevelopment.pkg> Failed to verify with error: Error Domain=PKInstallErrorDomain Code=102 "The package “MobileDeviceDevelopment.pkg” is untrusted." UserInfo={NSLocalizedDescription=The package “MobileDeviceDevelopment.pkg” is untrusted., NSURL=MobileDeviceDevelopment.pkg -- file:///Applications/Xcode.app/Contents/Resources/Packages/, PKInstallPackageIdentifier=com.apple.pkg.MobileDeviceDevelopment, NSUnderlyingError=0x7feaec7f2c00 {Error Domain=NSOSStatusErrorDomain Code=-2147409654 "CSSMERR_TP_CERT_EXPIRED" UserInfo={SecTrustResult=5, PKTrustLevel=PKTrustLevelExpiredCertificate, NSLocalizedFailureReason=CSSMERR_TP_CERT_EXPIRED}}}

上記エラーで ぐぐると色々問題が。 https://stackoverflow.com/questions/58550284/mobiledevice-pkg-untrusted-cannot-open-xcode-after-os-x-update

一番よさそうなのが、xcodeをアンインストールしてから、 入れ直した方が良さそう。


xcodeを関連ファイルをまとめてアンインストール。
↓削除参考

https://qiita.com/UJIPOID/items/015805c89bddca540129

削除する際は、sudo権限でじゃないとアンインストールできないものもある。


ついでに、macのOSアップデートをサボっていたので、 macOSをHigh sierraから catalina へ飛び級アップグレード。

macOSのアップグレードはうまくいったので、次はxcode。

そして、xcodeをappstoreからインストール。
install conponentsが満タンになっても数時間反応がなかったので、
macを再起動して再度xcodeを起動し、install componentを走らせたら直った!


macを再起動して再度xcodeを起動し、install componentを走らせたら直った!

あとは、UnityにモジュールにiOSビルドサポートがインストールできれば…

追記2019-11-17

無事UnityのiOSビルドサポートもインストールできた。!

Unity PlayServicesResolverの自動更新を止める

環境 Unity2018 4.5

Unity2018 4.5でAndroidをビルドする際に、androidのplay-services周りのライブラリが自動更新されて、消しても消しても復活するので、それを自動更新しないようにする設定。

これで自動更新が止まる。ちゃんと「OK」ボタン押さないと反映されないので注意。

Unity MaterialのTilingやOffsetをスクリプトから変更する

下記のようなMaterialのプロパティをいじりたい時。

下記のようなコードで変更できる。
ただ、sharedMaterialは、このmaterialを使っているものすべてが変わるので注意。

// Offsetを変更
childCubeObj.GetComponent<Renderer>().sharedMaterial.SetTextureOffset("_MainTex",new Vector2(0.5f,0.5f));

// Tilingを変更
childCubeObj.GetComponent<Renderer>().sharedMaterial.SetTextureScale("_MainTex", new Vector2(4f,4f));
            

Unity 破片が飛び散るような「Mesh Explosion」アセット入れたみた

Mesh Explosionという破片が飛び散るようなアセットを購入しいれたみたので_φ(・_・。

https://assetstore.unity.com/packages/tools/particles-effects/mesh-explosion-5471

使い方

1. 必要なAssetをインポート。

2. Mesh Exploderスクリプトを破裂対象のオブジェクトにアタッチ

3. 破裂するタイミングをスクリプト等で指定
コードは下記だけ、とてつもなくシンプル

void StartExplosion() {
		BroadcastMessage("Explode");
		GameObject.Destroy(gameObject);
	}
BroadcastMessage("Explode");

で爆発処理をしている。

破片が重力処理で飛び散るなどもできる。