<?xml version="1.0" encoding="UTF-8" ?>
<rss version="0.91">
  <channel>
    <title>エンジニアリングメモ</title>
    <description>技術系情報を書き留める日記</description>
    <link>http://chusotudensi.blog.shinobi.jp/</link>
    <language>ja</language>
    <copyright>Copyright (C) NINJATOOLS ALL RIGHTS RESERVED.</copyright>

    <item>
      <title>[Unity]Bakeできないオブジェクトがある場合</title>
      <description>Modelのインポート設定からNormals -&amp;gt; Calculateで法線を計算する</description> 
      <link>http://chusotudensi.blog.shinobi.jp/unity/-unity-bake%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%8C%E3%81%82%E3%82%8B%E5%A0%B4%E5%90%88</link> 
    </item>
    <item>
      <title>[Unity]ScriptableObjectの性質と使用上の注意点</title>
      <description>[はじめに]&lt;br /&gt;
大変便利なScriptableObjectであるが、設計を誤ると&lt;br /&gt;
・プレイPlayボタンを押したらデータが消えてしまう&lt;br /&gt;
・Unityを再起動したらデータが消えてしまう&lt;br /&gt;
といった問題点が起こる。&lt;br /&gt;
これらの原因と解決法について書いていく&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[ScriptableObjectの性質について]&lt;br /&gt;
その１．ScriptableObjectは静的なインスタンスである。（＝ゲーム開始時やUnity起動時に初期データに戻る）&lt;br /&gt;
その２．ScriptableObjectを設計するには、ScriptableObjectクラスを継承する必要がある。&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;そして&lt;/strong&gt;&lt;br /&gt;
その３．ScriptableObjectに保存出来るのは、&lt;a href=&quot;https://docs.unity3d.com/ja/current/Manual/script-Serialization.html&quot; title=&quot;&quot;&gt;シリアライズのルール&lt;/a&gt;　を満たしたもののみ。&lt;br /&gt;
&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;span style=&quot;color: #888888; text-decoration: underline;&quot;&gt;&lt;strong&gt;&lt;br /&gt;
&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
ということ。&lt;br /&gt;
&lt;br /&gt;
[原因]&lt;br /&gt;
僕の場合クラスに[System.Serialize]を属性づけしてなかったためだった。&lt;br /&gt;
[結論]&lt;br /&gt;
&lt;br /&gt;
書くのめんどくさくなって力尽きました。&lt;br /&gt;
ようは、&lt;a href=&quot;https://docs.unity3d.com/ja/current/Manual/script-Serialization.html&quot; title=&quot;&quot;&gt;シリアライズのルール&lt;/a&gt;をよく読んで守りましょう　ということ</description> 
      <link>http://chusotudensi.blog.shinobi.jp/unity/-unity-scriptableobject%E3%81%AE%E6%80%A7%E8%B3%AA</link> 
    </item>
    <item>
      <title>[Unity] collider.IsTouching(collider) が動いてる状態だとまともに動かない件。バグ？</title>
      <description>IsTouchingは引数のColliderに触れていたらTrueを返す関数だけど&lt;br /&gt;
静止状態ならTrueを返すが動いてる状態だと接触していてもFalseを返すことに気づいた。&lt;br /&gt;
&lt;br /&gt;
つまりEventで状態を受け取り処理するのではなく、自分で判定を呼び出す場合には&lt;br /&gt;
IsTouchingは使い物にならないので自分で当たり判定を書きましょうという話。&lt;br /&gt;
&lt;br /&gt;
Collider.bounds.max　で３D空間のmax座標が帰ってくるので Collider同士の座標を比べることで判定可能で、この方法だと動いていてもちゃんと判定してくれた。&lt;br /&gt;
&lt;br /&gt;
僕の場合は2Dゲーで縦移動のみだったのでCollider.bounds.max.y　で返ってくるfloatを比較した。</description> 
      <link>http://chusotudensi.blog.shinobi.jp/unity/-unity-%20collider.istouchin</link> 
    </item>
    <item>
      <title>[Unity]Unable to marge android manifest</title>
      <description>Unity 5.5.2f1&lt;br /&gt;
&lt;br /&gt;
主にAssetとかに同梱されてるAndroidのマニフェストに書いてあるSDKバージョンと&lt;br /&gt;
Unityで指定してるSDKバージョンが別物だと怒られる時に出るエラーなので&lt;br /&gt;
&lt;br /&gt;
解決法としては、よく「PlaySettings -&amp;gt; Minimum API Levelを合わせろ」って書かれてるのを目にするのですが&lt;br /&gt;
僕の環境だとそのAPI Levelをいじったところで何故かSDKバージョンが変わらなかった（バグ？）のでその解決法。&lt;br /&gt;
&lt;br /&gt;
　ProjectビューからManifestを検索して開き、&lt;br /&gt;
　よく調べてないので知らないですけど、targetSDKの値を基本上位互換はあると思うので&lt;br /&gt;
Unity指定のAPILevelに手動で書き直したらちゃんと動きました。&lt;br /&gt;
&lt;br /&gt;
　具体的には僕の場合はマニフェストには19と書いてり、前述の通りUnityはどう設定しても23固定だったので&lt;br /&gt;
マニフェストの19を23に書き直したら問題なくビルドできました。</description> 
      <link>http://chusotudensi.blog.shinobi.jp/unity/-unity-unable%20to%20marge%20and</link> 
    </item>
    <item>
      <title>[Unity] UnityAds メモ</title>
      <description>[はじめに]&lt;br /&gt;
UnityAdsは一言で表すと「現状ごっちゃごちゃ」。&lt;br /&gt;
だからまとめてみた。[愚痴]は読み飛ばし推奨だが現状はわかる。&lt;br /&gt;
&lt;br /&gt;
[愚痴]&lt;br /&gt;
5.2以降でUnityAdsアセットを入れた場合競合を起こして動かなくなったり。ProjectViewから削除しても勝手に復活して競合を起こし続けたり。そもそも前知識無しだとUnityAdsとUnityAds2.0がバージョンだけで同じものだと思ってたし。&lt;br /&gt;
Unityのマネタイズ公式にアクセスするとUnityAdsSDK2.0を入手するようにアナウンスがある。&lt;br /&gt;
対応？したっぽいUnityAds2.0アセットをインストールすればいいの？と悩むが&lt;br /&gt;
公式のAdsヘルプにはUnityAds2.0の記述は無く、UnityAdsSDK2.0の導入方法を選んでみるとUnityAdsアセットとサービスタブの説明と導入解説に飛ばされ、5.2以降はサービスタブ使ったほうがいいよみたいな記述がある・・・が、この中の最新版はUnityAds2.0に間違いないようで５．５以降はこれを使えといわんばかりにヘッダに5.5とデカデカと書いてある。英語での情報もなかなか見つからない。&lt;br /&gt;
しまいにはServicesタブがバグ？を起こしてAdsやAnalytics etc...の中身が見れなくなった。&lt;br /&gt;
けれでも、ServiceタブからAdsをオフにしないとUnityAds2.0アセットと競合を起こしてしまうから開かないといけないが開けない。&lt;br /&gt;
そんな感じで、もう、お手上げなのだ。&lt;br /&gt;
&lt;br /&gt;
・・・長々と書いたが、ようは数日かけて調べてもよくわからない状況ということだ。&lt;br /&gt;
&lt;br /&gt;
[変遷]&lt;br /&gt;
１．UnityAdsアセット（～5.2まで）&lt;br /&gt;
（現在は削除されてる）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
２．UnityAds　5.2～&lt;br /&gt;
参考：Unity5.2リリース日　2015/9/8&lt;br /&gt;
UnityAdsが内蔵され、UnityAdsアセットは削除推奨になった。&lt;br /&gt;
5.2からはUnity内のServiceタブからAdsの設定できるように。&lt;br /&gt;
&lt;br /&gt;
３．UnityAds2.0&lt;br /&gt;
参考：UnityAds2.0 初版2016/7/21　| 最新バージョン2.0.8 2017/1/31&lt;br /&gt;
http://unityads.unity3d.com/help/monetization/2.0-upgrade-guide-unity　（アセット）&lt;br /&gt;
https://www.assetstore.unity3d.com/jp/#!/content/66123　（導入記事）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[まとめ]&lt;br /&gt;
2017/3/1　現在&lt;br /&gt;
いまのところは2.0は入れずにServiceタブの使用を推奨します。&lt;br /&gt;
なぜならタブの不具合もあって2.0系を問題なく導入するのは至難の業だからです。</description> 
      <link>http://chusotudensi.blog.shinobi.jp/unity/-unity-%20unityads%20%E3%83%A1%E3%83%A2</link> 
    </item>
    <item>
      <title>[Unity]UnityAds　競合　multiple times 解決法</title>
      <description>Unity5.5.0f3&lt;br /&gt;
&lt;br /&gt;
[参考]&lt;br /&gt;
https://unityads.unity3d.com/help/monetization/integration-guide-unity&lt;br /&gt;
&lt;br /&gt;
[解決法]&lt;br /&gt;
https://forum.unity3d.com/threads/unity-5-2-the-imported-type-unityengine-advertisements-showresult-is-defined-multiple-times.353529/page-2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
自分の投稿&lt;br /&gt;

&lt;blockquote&gt;&lt;span style=&quot;color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 14.6667px; background-color: #fafafa;&quot;&gt;I solved the problem.&lt;/span&gt;&lt;span style=&quot;color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 14.6667px; background-color: #fafafa;&quot;&gt;Please remove&amp;nbsp;&lt;/span&gt;&lt;i style=&quot;color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 14.6667px; background-color: #fafafa;&quot;&gt;the following locations:&lt;/i&gt;
&lt;ul style=&quot;margin: 1em 0px 1em 3em; padding: 0px; color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 14.6667px; background-color: #fafafa;&quot;&gt;
&lt;li style=&quot;margin: 0px; padding: 0px; list-style: disc outside;&quot;&gt;&lt;i&gt;Plugins/Android/unityads&lt;/i&gt;&lt;/li&gt;
&lt;li style=&quot;margin: 0px; padding: 0px; list-style: disc outside;&quot;&gt;&lt;i&gt;Plugins/iOS/UnityAds.bundle&lt;/i&gt;&lt;/li&gt;
&lt;li style=&quot;margin: 0px; padding: 0px; list-style: disc outside;&quot;&gt;&lt;i&gt;Plugins/iOS/UnityAds.framework&lt;/i&gt;&lt;/li&gt;
&lt;li style=&quot;margin: 0px; padding: 0px; list-style: disc outside;&quot;&gt;&lt;i&gt;Plugins/iOS/UnityAdsUnityWrapper.h&lt;/i&gt;&lt;/li&gt;
&lt;li style=&quot;margin: 0px; padding: 0px; list-style: disc outside;&quot;&gt;&lt;i&gt;Plugins/iOS/UnityAdsUnityWrapper.mm&lt;/i&gt;&lt;/li&gt;
&lt;li style=&quot;margin: 0px; padding: 0px; list-style: disc outside;&quot;&gt;&lt;i&gt;UnityAds&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 14.6667px; background-color: #fafafa;&quot;&gt;If that's still The Project Window has UnityAds folder,the problem is due of UnityAds asset zombie.&lt;/span&gt;&lt;span style=&quot;color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 14.6667px; background-color: #fafafa;&quot;&gt;&lt;span style=&quot;text-decoration: line-through;&quot;&gt;this folder is no need for Unity 5.2 and later&lt;/span&gt;.&lt;/span&gt;&lt;span style=&quot;color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 14.6667px; background-color: #fafafa;&quot;&gt;try to remove UnityAds folder&amp;nbsp;&lt;/span&gt;&lt;b style=&quot;color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 14.6667px; background-color: #fafafa;&quot;&gt;by Windows Explorer.&lt;br /&gt;
&lt;/b&gt;&lt;span style=&quot;color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 14.6667px; background-color: #fafafa;&quot;&gt;If you remove it&amp;nbsp;&lt;/span&gt;&lt;b style=&quot;color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 14.6667px; background-color: #fafafa;&quot;&gt;by The Project Window,&amp;nbsp;&lt;/b&gt;&lt;span style=&quot;color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 14.6667px; background-color: #fafafa;&quot;&gt;Unity will revive it when you click Services Window -&amp;gt; Ads.&lt;/span&gt;&lt;/blockquote&gt;
&lt;b style=&quot;color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 14.6667px; background-color: #fafafa;&quot;&gt;&lt;img src=&quot;https://forum.unity3d.com/styles/default/xenforo/clear.png&quot; class=&quot;mceSmilieSprite mceSmilie3&quot; alt=&quot;:(&quot; title=&quot;Frown    :(&quot; deluminate_imagetype=&quot;png&quot; style=&quot;border-width: 0px; border-style: initial; vertical-align: text-bottom; margin: 0px 1px; display: inline-block; width: 18px; height: 18px; background: url('styles/default/xenforo/xenforo-smilies-sprite.png') -40px -42px no-repeat;&quot; /&gt;&lt;br /&gt;
&lt;/b&gt;[注意]&lt;br /&gt;
後日記事のUnityAds メモ記事にあるようなことが起きたので、自信が持てずこの投稿は消しました。&lt;br /&gt;
　打ち消し線部は間違いだと思った箇所です。なぜならAds2.0でも使うフォルダ名のため5.2以降でも使う場合は使うからです。（競合時、内蔵のAdsを優先したい時は削除する必要があるのは変わりません）&lt;br /&gt;
　また元記事では5.2以降～でしたのでUnityAdsの削除方法の記事でしたが、&lt;br /&gt;
私はUnityAdsとUnityAds2.0を混同していたため、この投稿はUnityAds2.0を削除したい場合の解決法になるようです。&lt;br /&gt;
　この方法で内蔵のUnityAdsを利用できるようになり、競合は解決しますが私の知識が後日記事のような状態なのでこの記事は虚構記事だと思って捉えてください</description> 
      <link>http://chusotudensi.blog.shinobi.jp/unity/-unity-unityads%E3%80%80%E7%AB%B6%E5%90%88%E3%80%80multipl</link> 
    </item>
    <item>
      <title>[Unity]EventTrigger Memo</title>
      <description>&lt;span style=&quot;color: #dddddd; font-family: 'Lucida Grande', 'Trebuchet MS', Verdana, Helvetica, Arial, sans-serif; font-size: 15.6px; background-color: #000000;&quot;&gt;EventTriggerはUI用の機能なので、基本的にSpriteに使うことは想定されていません（たぶん）&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px; color: #dddddd; font-family: 'Lucida Grande', 'Trebuchet MS', Verdana, Helvetica, Arial, sans-serif; font-size: 15.6px; background-color: #000000;&quot; /&gt;&lt;br style=&quot;margin: 0px; padding: 0px; color: #dddddd; font-family: 'Lucida Grande', 'Trebuchet MS', Verdana, Helvetica, Arial, sans-serif; font-size: 15.6px; background-color: #000000;&quot; /&gt;&lt;span style=&quot;color: #dddddd; font-family: 'Lucida Grande', 'Trebuchet MS', Verdana, Helvetica, Arial, sans-serif; font-size: 15.6px; background-color: #000000;&quot;&gt;以下のような方法をとるのが一般的ではないでしょうか。。&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px; color: #dddddd; font-family: 'Lucida Grande', 'Trebuchet MS', Verdana, Helvetica, Arial, sans-serif; font-size: 15.6px; background-color: #000000;&quot; /&gt;&lt;span style=&quot;color: #dddddd; font-family: 'Lucida Grande', 'Trebuchet MS', Verdana, Helvetica, Arial, sans-serif; font-size: 15.6px; background-color: #000000;&quot;&gt;・SpriteではなくImageを用い、EventTriggerを設定する&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px; color: #dddddd; font-family: 'Lucida Grande', 'Trebuchet MS', Verdana, Helvetica, Arial, sans-serif; font-size: 15.6px; background-color: #000000;&quot; /&gt;&lt;span style=&quot;color: #dddddd; font-family: 'Lucida Grande', 'Trebuchet MS', Verdana, Helvetica, Arial, sans-serif; font-size: 15.6px; background-color: #000000;&quot;&gt;・SpriteにColliderをつけ、クリックした時点でPhysics2D.OverlapPoint()で衝突判定する&lt;/span&gt;</description> 
      <link>http://chusotudensi.blog.shinobi.jp/%E6%9C%AA%E9%81%B8%E6%8A%9E/-unity-eventtrigger%20memo</link> 
    </item>
    <item>
      <title>[Unity]Panelの枠の画像の差し替えかた</title>
      <description>Unity ver 5.5.0f3 Personal (64bit)&lt;br /&gt;
&lt;br /&gt;
1.差し替える画像を用意する&lt;br /&gt;
&lt;br /&gt;
2.Project -&amp;gt;対象の画像 -&amp;gt; 以下のように設定&lt;br /&gt;
Texture Type : Sprite (2D and UI)&lt;br /&gt;
Sprite Mode : Single&lt;br /&gt;
&lt;br /&gt;
3.Sprite Editorボタンを押す&lt;br /&gt;
&lt;br /&gt;
4.右下のborderの数字をいじりスライスする。&lt;br /&gt;
&lt;img src=&quot;http://file.chusotudensi.blog.shinobi.jp/09cb6efe.jpeg&quot; alt=&quot;&quot; /&gt; &lt;br /&gt;
&lt;br /&gt;
5.Hierarchy -&amp;gt; 対象のパネル -&amp;gt;Image(Component) -&amp;gt; 以下のように設定&lt;br /&gt;
Source Image : 2.で設定した画像&lt;br /&gt;
Image Type :Sliced</description> 
      <link>http://chusotudensi.blog.shinobi.jp/unity/-unity-panel%E3%81%AE%E6%9E%A0%E3%81%AE%E7%94%BB%E5%83%8F%E3%81%AE%E5%B7%AE%E3%81%97%E6%9B%BF%E3%81%88%E3%81%8B%E3%81%9F</link> 
    </item>
    <item>
      <title>[Unity]Animatorがアクティブのとき軸がロックされたり、動かなくなる現象</title>
      <description>&lt;h3&gt;[事象]&lt;/h3&gt;
Unity Ver 5.5.0f3 Personal (64bit)&lt;br /&gt;
Aniamtorでアニメーション中　スクリプトやRidibody等で位置Positionや回転Rotationをいじったとき&lt;br /&gt;
全体や特定の軸だけ動かなくなった現象に見舞われた。&lt;br /&gt;
&lt;br /&gt;

&lt;h3&gt;[前提]&lt;/h3&gt;
アニメーションの実装についてググった場合二通りの方法が見つかる。&lt;br /&gt;
※アニメーションした対象をAと呼ぶ。Aの親空オブジェクトをBと呼ぶ&lt;br /&gt;
&lt;br /&gt;
1.B作成しこれにAnimatorを実装することで、&lt;br /&gt;
「親のオブジェクトが移動したとき子のオブジェクトもつられて移動すること」を利用して、&lt;br /&gt;
Bを基準としてAにアニメーションさせる方法&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
Root Motionについての記事。&lt;br /&gt;
Bが存在しなくてもAにAnimatorを実装しRootMotionにチェックをいれると&lt;br /&gt;
Bを基準にしたようなアニメーションが出来るようになったという記事&lt;br /&gt;

&lt;h3&gt;[原因]&lt;/h3&gt;
私は、2の記事を読み空オブジェクトをわざわざ作る必要が無くなったと誤解していたからだった。&lt;br /&gt;
RootMotionは確かに自transformを基準としたアニメーションをしてくれるが、これには一つ&lt;strong&gt;致命的問題&lt;/strong&gt;があった。&lt;br /&gt;
　というのは、&lt;span style=&quot;color: #008000;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;同一オブジェクトにAnimatorとTransformをいじるスクリプト（Ridibody等を含む）が存在すると動作しなくなり初期値をずっと示すようになるという挙動が存在する&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;ということだ。&lt;br /&gt;

&lt;h3&gt;[解決法]&lt;/h3&gt;
　つまりRootMotionを利用するしないにせよ、transformをいじるのであれば「Bを作成する作業は必要である。」ということ。&lt;br /&gt;
&lt;br /&gt;
　結局のところ、RootMotionの働きは「Animationの作成時Dopesheetではワールド座標を指定して作成しても、それとは関係なくCurvesの値をlocal座標に反映した状態でアニメーションしてくれる」だけなのだ。&lt;br /&gt;
&lt;br /&gt;
　つまりRootMotionは「（私が勘違いしていた）空オブジェクトを作る作業を無くすため」のものでは無いのだ。&lt;br /&gt;

&lt;h3&gt;[最善策？]&lt;/h3&gt;
1.の方法でBにAnimatorを実装し、Aにtransformをいじるスクリプト等を実装したとき&lt;br /&gt;
AがBより離れれば離れるほどアニメーションにその距離分の差異が反映されてしまう。&lt;br /&gt;
そのためBにスクリプト、AにAnimator（RootMotion)を実装したほうが良いと思う。</description> 
      <link>http://chusotudensi.blog.shinobi.jp/unity/-unity-animator%E3%81%8C%E3%82%A2%E3%82%AF%E3%83%86%E3%82%A3%E3%83%96%E3%81%AE%E3%81%A8%E3%81%8D%E8%BB%B8%E3%81%8C</link> 
    </item>
    <item>
      <title>VisualStudio <summary>の色付けについてメモ</title>
      <description>&lt;blockquote&gt;///&amp;lt;summary&amp;gt;&lt;br /&gt;
///&lt;br /&gt;
///&amp;lt;summary&amp;gt;&lt;/blockquote&gt;
&lt;br /&gt;
VisualStudioでよく使うこれの色付けについてメモ&lt;br /&gt;
ツール&amp;rarr;オプション&amp;rarr;フォント色&lt;br /&gt;
&lt;br /&gt;
から&lt;br /&gt;
「XMLドキュメントコメント」のところの&lt;br /&gt;
名前、属性名、区切り記号、テキスト　を変えればいける</description> 
      <link>http://chusotudensi.blog.shinobi.jp/unity/visualstudio%20-summary-%E3%81%AE%E8%89%B2%E4%BB%98%E3%81%91%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%83%A1%E3%83%A2</link> 
    </item>

  </channel>
</rss>