忍者ブログ

エンジニアリングメモ

技術系情報を書き留める日記

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

[Unity]Bakeできないオブジェクトがある場合

Modelのインポート設定からNormals -> Calculateで法線を計算する
PR

[Unity]ScriptableObjectの性質と使用上の注意点

[はじめに]
大変便利なScriptableObjectであるが、設計を誤ると
・プレイPlayボタンを押したらデータが消えてしまう
・Unityを再起動したらデータが消えてしまう
といった問題点が起こる。
これらの原因と解決法について書いていく


[ScriptableObjectの性質について]
その1.ScriptableObjectは静的なインスタンスである。(=ゲーム開始時やUnity起動時に初期データに戻る)
その2.ScriptableObjectを設計するには、ScriptableObjectクラスを継承する必要がある。

そして
その3.ScriptableObjectに保存出来るのは、シリアライズのルール を満たしたもののみ。


ということ。

[原因]
僕の場合クラスに[System.Serialize]を属性づけしてなかったためだった。
[結論]

書くのめんどくさくなって力尽きました。
ようは、シリアライズのルールをよく読んで守りましょう ということ

[Unity] collider.IsTouching(collider) が動いてる状態だとまともに動かない件。バグ?

IsTouchingは引数のColliderに触れていたらTrueを返す関数だけど
静止状態ならTrueを返すが動いてる状態だと接触していてもFalseを返すことに気づいた。

つまりEventで状態を受け取り処理するのではなく、自分で判定を呼び出す場合には
IsTouchingは使い物にならないので自分で当たり判定を書きましょうという話。

Collider.bounds.max で3D空間のmax座標が帰ってくるので Collider同士の座標を比べることで判定可能で、この方法だと動いていてもちゃんと判定してくれた。

僕の場合は2Dゲーで縦移動のみだったのでCollider.bounds.max.y で返ってくるfloatを比較した。

[Unity]Unable to marge android manifest

Unity 5.5.2f1

主にAssetとかに同梱されてるAndroidのマニフェストに書いてあるSDKバージョンと
Unityで指定してるSDKバージョンが別物だと怒られる時に出るエラーなので

解決法としては、よく「PlaySettings -> Minimum API Levelを合わせろ」って書かれてるのを目にするのですが
僕の環境だとそのAPI Levelをいじったところで何故かSDKバージョンが変わらなかった(バグ?)のでその解決法。

 ProjectビューからManifestを検索して開き、
 よく調べてないので知らないですけど、targetSDKの値を基本上位互換はあると思うので
Unity指定のAPILevelに手動で書き直したらちゃんと動きました。

 具体的には僕の場合はマニフェストには19と書いてり、前述の通りUnityはどう設定しても23固定だったので
マニフェストの19を23に書き直したら問題なくビルドできました。

[Unity] UnityAds メモ

[はじめに]
UnityAdsは一言で表すと「現状ごっちゃごちゃ」。
だからまとめてみた。[愚痴]は読み飛ばし推奨だが現状はわかる。

[愚痴]
5.2以降でUnityAdsアセットを入れた場合競合を起こして動かなくなったり。ProjectViewから削除しても勝手に復活して競合を起こし続けたり。そもそも前知識無しだとUnityAdsとUnityAds2.0がバージョンだけで同じものだと思ってたし。
Unityのマネタイズ公式にアクセスするとUnityAdsSDK2.0を入手するようにアナウンスがある。
対応?したっぽいUnityAds2.0アセットをインストールすればいいの?と悩むが
公式のAdsヘルプにはUnityAds2.0の記述は無く、UnityAdsSDK2.0の導入方法を選んでみるとUnityAdsアセットとサービスタブの説明と導入解説に飛ばされ、5.2以降はサービスタブ使ったほうがいいよみたいな記述がある・・・が、この中の最新版はUnityAds2.0に間違いないようで5.5以降はこれを使えといわんばかりにヘッダに5.5とデカデカと書いてある。英語での情報もなかなか見つからない。
しまいにはServicesタブがバグ?を起こしてAdsやAnalytics etc...の中身が見れなくなった。
けれでも、ServiceタブからAdsをオフにしないとUnityAds2.0アセットと競合を起こしてしまうから開かないといけないが開けない。
そんな感じで、もう、お手上げなのだ。

・・・長々と書いたが、ようは数日かけて調べてもよくわからない状況ということだ。

[変遷]
1.UnityAdsアセット(~5.2まで)
(現在は削除されてる)


2.UnityAds 5.2~
参考:Unity5.2リリース日 2015/9/8
UnityAdsが内蔵され、UnityAdsアセットは削除推奨になった。
5.2からはUnity内のServiceタブからAdsの設定できるように。

3.UnityAds2.0
参考:UnityAds2.0 初版2016/7/21 | 最新バージョン2.0.8 2017/1/31
http://unityads.unity3d.com/help/monetization/2.0-upgrade-guide-unity (アセット)
https://www.assetstore.unity3d.com/jp/#!/content/66123 (導入記事)


[まとめ]
2017/3/1 現在
いまのところは2.0は入れずにServiceタブの使用を推奨します。
なぜならタブの不具合もあって2.0系を問題なく導入するのは至難の業だからです。

プロフィール

HN:
テク
性別:
非公開

フリーエリア

P R