<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: enpel</title>
    <description>The latest articles on DEV Community by enpel (@enpel).</description>
    <link>https://dev.to/enpel</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F385221%2F61958be5-815f-4d96-9bb5-c86a16974fd1.png</url>
      <title>DEV Community: enpel</title>
      <link>https://dev.to/enpel</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/enpel"/>
    <language>en</language>
    <item>
      <title>ZenjectのBindメソッドって何を使えば良いんだろう</title>
      <dc:creator>enpel</dc:creator>
      <pubDate>Thu, 14 May 2020 10:42:51 +0000</pubDate>
      <link>https://dev.to/enpel/zenject-bind-4m2a</link>
      <guid>https://dev.to/enpel/zenject-bind-4m2a</guid>
      <description>&lt;p&gt;インスタンスのInterfaceをまるごとBindしてくれるBindInterfacesAndSelfToは便利だけど常に使うべきだろうか？&lt;/p&gt;

&lt;h4&gt;
  
  
  ざっくりとした違い
&lt;/h4&gt;

&lt;p&gt;まずは違いについておさらい&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Container.Bind&amp;lt;Foo&amp;gt;(); //FooをBindする
Container.Bind&amp;lt;IBar&amp;gt;().To&amp;lt;Bar&amp;gt;(); // Barに実装されているIBarをBindする。
Container.BindInterfaces&amp;lt;Bar&amp;gt;(); // Barに含まれるすべてのInterfaceをBindする
Container.BindInterfacesAndSelfTo&amp;lt;Bar&amp;gt;(); //Barに含まれるすべてのInterfaceとBarをBindする。
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Zenjectでは次のInterfaceがBindされた時自動的に呼び出すようになっている&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ITickable&lt;/li&gt;
&lt;li&gt;IInitializable&lt;/li&gt;
&lt;li&gt;IDisposable&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;これらのInterfaceをBindした時に強制的にZenjectのライフサイクルに乗ってしまうのでこれを避けたい場合はBindInterfaces及びBindInterfacesAndSelfToを使うのを避けたほうが良いかもしれない。&lt;/p&gt;

&lt;p&gt;また、複数のInterfaceを実装しているがZenjectで特定のInterfaceにしか用が無いならBindする対象を絞る方が良いだろう&lt;/p&gt;

&lt;h3&gt;
  
  
  BindInterfacesとBindInterfacesAndSelfToの使い分け
&lt;/h3&gt;

&lt;p&gt;この2つの違いはInterfaceを実装しているクラスそのものもBindするかどうか&lt;br&gt;
Interfaceにしか用が無いならBindInterfacesを使うしクラスそのものも使うのであればBindInterfacesAndSelfToで良いと思う&lt;/p&gt;

&lt;h3&gt;
  
  
  全部BindInterfacesAndSelfToでいいんじゃない？
&lt;/h3&gt;

&lt;p&gt;そういうわけでもない。&lt;br&gt;
あるかわからないけど初期化処理やDisposeのタイミングを自分でコントロールしたいような時はそれらを含めるべきじゃない。&lt;/p&gt;

&lt;h3&gt;
  
  
  手間じゃないなら
&lt;/h3&gt;

&lt;p&gt;チームでやるような開発ならBindやBind.Toである程度制御したほうが良い気がする。&lt;br&gt;
最終的に読みやすさとかメンテナンス性とかにつながってくると思う。&lt;br&gt;
あとはせいぜいBindInterfaces…&lt;/p&gt;

&lt;p&gt;とりあえずそんな感じ&lt;/p&gt;

</description>
      <category>zenject</category>
      <category>unity3d</category>
    </item>
    <item>
      <title>Position and Rotation Copy Tips in Unity</title>
      <dc:creator>enpel</dc:creator>
      <pubDate>Wed, 13 May 2020 05:30:09 +0000</pubDate>
      <link>https://dev.to/enpel/position-and-rotation-copy-tips-in-unity-5g29</link>
      <guid>https://dev.to/enpel/position-and-rotation-copy-tips-in-unity-5g29</guid>
      <description>&lt;p&gt;Unityで以下のようなことをしたい時、別にこれでも良いのだが&lt;br&gt;
A.position = B.position;&lt;br&gt;
A.rotation = B.rotation;&lt;/p&gt;

&lt;p&gt;このSetPositionAndRotationを使う方が若干パフォーマンスに優れる。&lt;br&gt;
A.SetPositionAndRotation(B.position,B.rotation);&lt;br&gt;
&lt;a href="https://docs.unity3d.com/ScriptReference/Transform.SetPositionAndRotation.html"&gt;https://docs.unity3d.com/ScriptReference/Transform.SetPositionAndRotation.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>unity3d</category>
    </item>
  </channel>
</rss>
