「ワールドスペース」に設定され、ワールドキューブの上に絶対に配置されたUIキャンバスを持っていると仮定します。Canvasを世界単位で特定のサイズに設定するにはどうすればよいですか?
キューブは実行時にサイズ変更されます。
スケーリングキャンバスを使用しないで、キャンバスのサイズを、私のキューブの既知の世界単位の幅に合わせるにはどうすればよいですか?
私はあなたが使用して「キャンバスユニットの中にキャンバスを設定することができることを知っている:
var rect = canvas.GetComponent<RectTransform>();
rect.sizeDelta = new Vector2(200, 200);
しかし、200x200のキャンバス単位ではなく、ワールド単位です。私のキューブは4ユニット幅です。 sizeDelta
はどのように設定する必要がありますか?
これはCanvasScale
コンポーネントと関係がありますが、わかりません。 referenceUnitsPerPixel
は100で、スケールファクタとしては完全に間違っています。dynamicPixelsPerUnit
は1と似ていますが、これも間違っています。
なぜこれが動作するのか理解できません。実際に行っていると、現在のときには動作しません)、それは完全に動作します、ありがとう! – Doug
基本的に** CanvasScaler **は複数の画面サイズ/解像度に自動的にUIを適応させるためのものです。あなたの状況(そしてほとんどの場合、_RenderMode_が_World_に設定されている)では、ワールド単位で調整できるので、スケールする必要はありません。例外は、3D HUDの幅などです。 4:3、16:9、または21:9スクリーンの全画面。私は十分にはっきりしていたと思う:そうでなければ、私はそれを私の答えでさらに説明しようと思うだろう:) – Kardux