1

誰でも理由を説明できますか、エディターで次のように表示されます:

ここに画像の説明を入力

一方、私のGalaxy S6では、次のようになります。

ここに画像の説明を入力

私のPanelUI 要素 (親) には、GridLayoutGroupコンポーネントとContentSizeFitter. 子要素にはLayoutElement、FlexibleWidth/Height が 120 のコンポーネントがあり、すべてのアンカーは全方向に伸びるように設定されています。

Canvas、320x480 の参照解像度で [画面サイズに合わせてスケール] に設定され、画面モードは高さに一致します。

正方形の量 (動的) に関係なく、エディターは親内の子要素のサイズを完全に変更しますが、私のデバイスではそれらが小さくなります。私は本当に混乱しています。

スクリプト内にサイズやアンカーの設定はなく、純粋にインスタンス化と親の割り当てが次のように行われます。

    for(int i=0; i < amount; i++)
    {
        GameObject emptyCell = (GameObject)Instantiate(emptyCellObject);
        emptyCell.transform.SetParent(cellHolder);
        emptyCell.GetComponent<RectTransform>().localPosition = new Vector3(0f, 0f, 0f);
        emptyCells.Add(emptyCell);
    }

関連するすべてのドキュメントもチェックしました: http://docs.unity3d.com/Manual/comp-UIAutoLayout.html物理デバイスの寸法を変更しますが、エディターは同じままであるため、何も変更されていないようです。

私はばかげたことをしていると確信していますが、私はすべての道を使い果たし、誰かが以前にこの奇妙なことに遭遇したことを望んでいました.

4

1 に答える 1

6

最終的にこれを理解しました。親オブジェクトが子要素をスケーリングするため (私が想定している画面スペースに基づく)、このインスタンスでは非生産的でした。私の回避策:

emptyCell.GetComponent<RectTransform>().localScale = Vector3.one;

...スケーリングを自分で手動でオーバーライドすることでしたが、現在はすべてのデバイスでうまく機能します。これが将来誰かに役立つことを願っています:)

于 2015-09-26T10:44:20.507 に答える