web-dev-qa-db-ja.com

キャンバスを移動したり、変換値を変更したりできない

Unity 5を使用していて、メニューシーンを作り始めました。キャンバスを作成したとき、Rect Transformコンポーネントがロックされていて、「Canvasによって駆動されるいくつかの値」と表示されています。変更できるのは、エディターでギズモを使用するときのz位置だけです。位置などをリセットできません。 なぜこれが起こっているのですか?Screenshot

8
dsiegler19

これは、キャンバスのキャンバスコンポーネントのrender modeScreen space - overlayに設定されていることを意味します。これにより、画面のサイズになります。 World Spaceに変更すると、サイズを変更して移動できます。

12
Danny Herbert

レンダリングモードの変更は、理想的なソリューションではありません。これがオーバーレイモードである理由も、オーバーレイモードではありません。ワールドスペースは、UI全体の動作を変更する単なるレンダリングモードであり、まったく異なる設定を意味し、子UIオブジェクトを独立して移動させるために、さらに多くの作業が必要になります。

Unityサイトのワールドスペースの説明は次のとおりです。

このレンダリングモードでは、キャンバスはシーン内の他のオブジェクトと同様に動作します。キャンバスのサイズは、Rect Transformを使用して手動で設定できます。UI要素は、3D配置に基づいて、シーン内の他のオブジェクトの前または後ろにレンダリングされます。これは、世界の一部であることが意図されているUIに役立ちます。これは「ダイエットインターフェース」とも呼ばれます。

Rectトランスフォームは、そのトランスフォームを制御する別のCanvasオブジェクトの子であるため、通常はロックされます。これを修正する方法は、「レイアウト要素」コンポーネントを追加して上書きすることです。そこから、好きなように動作するように構成したり、親UIオブジェクトから独立した変換を設定したりできます。

詳細については、次のUnityサポートページを参照してください。 https://support.unity3d.com/hc/en-us/articles/115000179163-How-to-overwrite-Width-and-Height-values-that- are-driven-by-a-Layout-Group-in-runtime-

5
Mike Brockbank