実現したいこと
Canvas オブジェクトを Screen Space - Overlay に設定しているので、
rect transform にある width と height は グレイアウト しているため Inspector では変更できません。
Screen Space - Overlay の設定 のまま、C# コードから rect transform にある width と height を変更する方法を探しております。
オブジェクトの親子は以下の通りにしております。
Main Camera(親) → Canvas(子)
発生している問題・分からないこと
Inspector ではグレイアウトしていますが、
ゲームタブのプルダウンメニュー内の画面サイズを変更することで、
Canvas オブジェクト の rect transform にある width と height を変更することができます。
このプルダウンメニューによる画面サイズの変更ができるのに、コードからはできません。
該当のソースコード
C#
1this.transform.parent.gameObject.GetComponent<RectTransform>().sizeDelta = new Vector2( Screen.currentResolution.width, Screen.currentResolution.height);
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
visual studio の ウォッチ では sizeDelta が指定の値に変わりますが、
Canvas オブジェクト の Inspector のグレイアウトしている width と height は指定の値にかわっていませんでした。
ゲームタブのプルダウンメニュー内の画面サイズの値のままでした。
補足
本件、解像度が異なるデバイスに対応するため、カメラ(perspective)、canvas それぞれをアプリ開始直後に
調整する方法を探しております。
canvas の rect の width と height は エディタで実行中にGameタブのプルダウンで解像度を変更できることを確認していますので、canvas は 「何かの設定」を参照して、値を決めているはずですので、canvas をインスタンス化する前に、その「何かの設定」を変更する方法を探しております。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/02/16 06:34