一緒に SetNativeSize 関数を呼び出すことが多かったので ¦ç«¯ã® 4 分の 1 を切り出します。W と H ( 幅(Width)と高さ(Height) ) プロパティーは、矩形に合わせて拡大縮小する画像の一部の幅と高さを表します。例えば、W と H の 0.5 という値で、画像領域を 4 分の 1 まで縮小します。これらのプロパティーを変更することで、必要に応じて画像をズームしたり、拡大縮小することができます( Scrollbar も参照してください)。, Copyright © 2020 Unity Technologies. OnRenderImage はすべてのレンダリングが RenderImage へと完了したときに呼び出されます。. Destroying the attached Behaviour will result in the game or Scene receiving OnDestroy. 「Unityで作る2Dアクションゲーム」 月額制のメンターサービスで初心者向けの開発サポートをしているので、分からないことがあれば是非こちらで質問してください! → https://menta.work/plan/1115, 趣味・仕事問わずUnityでゲームを作っている開発者のみで構成されるオンラインコミュニティです。Unityでゲームを開発・運用するにあたって必要なあらゆる知見を共有することを目的とします。. unityroom:baba_s をBOOTHで販売開始しました をBOOTHで販売開始しました defaultGraphicMaterial: 明示的にマテリアルが指定されていない場合に、UI 要素の描画のためにデフォルトマテリアルが使用されます: 変数. Use this to alter or return the Texture the RawImage displays. オブジェクトのコライダーと別のオブジェクトのコライダーが衝突している間、毎フレーム呼び出され続けます(2D 物理挙動のみ), サーバーとの接続に成功したときにクライアント上で呼び出されます, OnControllerColliderHit はキャラクターコントローラーが移動中にコライダーに衝突した際に、呼び出されます。. ョン動作を処理するコールバック, プレイヤーがフォーカスを取得、または、失ったときに、すべてのゲームオブジェクトに送信されます。, プレイヤーが一時停止したときにすべてのゲームオブジェクトに送信されます. The control is similar to the Image control, but offers more options for animating the image and accurately filling the control rectangle. この記事は「Unityゆるふわサマーアドベントカレンダー 2019」 27日目の代理投稿です。昨日は@UnagiHuman さんの「OculusQuestとRealsenseを接続してPointCloudを見る」でした。, RawImageはTextureをuGUI上で描画できるコンポーネントです。UIを組む時などはImageを使うことが多いと思いますが、動的なテクスチャを扱う場合にはRawImageの方が便利な時があります。そんな時に使える拡張メソッドを紹介したいと思います。, この拡張メソッドでは、上記Gif画像のようにUIのサイズに合わせて最大の大きさでアスペクト比を自動調整します。強みとしてはAnchorの状態に関わらず使うことができるので、StretchさせたUIパーツにも適用しやすいと思います。, サンプル(nkjzm/FixAspectSample)の中にあるRawImageExtensions.csをプロジェクトにインポートしてください。, 拡張メソッドとして用意してあるので、適用したいRawImageから以下の様に呼び出せます。, 気軽に使えるImageFitter.csも用意しました。UIにアタッチすると、付けた時、再生した時、コンポーネントのメニューから「FixAspect」を選択した時に自動的に適用してくれます。とりあえず試したい時とかにオススメです。, また、上記は元のUIサイズを基準としているため、異なるサイズのテクスチャで繰り返し使用するとどんどんサイズが小さくなってしまうというありがちなミスがあります(下記gif画像参照)。, そこで引数にVector2を渡せるvoid FixAspect(this RawImage image, Vector3 originalSize)を用意しました。このような使い方を想定しています。, ポイントとなるのがsizeDeltaで、これは「Anchorで定義された領域との差分」を表しています。例を上げると、Anchorがストレッチしていない場合(AnchorMinとAnchorMaxが一致している状態)のsizeDeltaは矩形(Rect)のサイズと一致します。何故ならAnchorで定義された領域は点であるため、矩形のサイズはsizeDeltaのみで表現されている状態だからです。また、Anchorがストレッチしていて、かつTop,Rightなどの余白が0の時、sizeDeltaは(0,0)となります。Anchorで定義された領域と矩形のサイズが完全に一致しているため、「Anchorで定義された領域との差分」がない状態だからです。これを理解できると、ストレッチしているかどうかに書かわらず処理を一般化することが出来ます。, これは処理後の大きさを求めるためのブロックです。テキスチャサイズを基準に、縦と横で元のUI要素のサイズの比率を比べています。それぞれが縦幅に合わせた時、横幅に合わせた時の最大のスケールを表しているため、小さい方を採用することで領域をはみ出ない最も大きなサイズになります。最後の行ではtextureSizeに最適なスケールが掛け合わされることで、最終的なUIの大きさが求められました。, anchorDiffはAnchorで表される領域の相対的な大きさです。(0,0)なら領域は点となり、(1,1)なら親サイズと一致するサイズになります。次の行では親のサイズを習得しています。rectには常に矩形のサイズが入っているので便利ですが、代入することは出来ない点に注意です。最後の行では領域の具体的なサイズを計算しています。Vector2同士の掛け算では各要素をかけてくれるので、このように書くことが出来ました。, これはまさに「Anchorで定義された領域との差分」という言葉通りで、最終的なサイズからAnchorで定義された領域を引くことでsizeDeltaが求められます。, GitHubにMITで置いてあるのでお気軽にご利用ください。