Unity 5を使用していて、メニューシーンを作り始めました。キャンバスを作成したとき、Rect Transform
コンポーネントがロックされていて、「Canvasによって駆動されるいくつかの値」と表示されています。変更できるのは、エディターでギズモを使用するときのz位置だけです。位置などをリセットできません。 なぜこれが起こっているのですか?
これは、キャンバスのキャンバスコンポーネントのrender mode
がScreen space - overlay
に設定されていることを意味します。これにより、画面のサイズになります。 World Space
に変更すると、サイズを変更して移動できます。
レンダリングモードの変更は、理想的なソリューションではありません。これがオーバーレイモードである理由も、オーバーレイモードではありません。ワールドスペースは、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-