Unity回転グラフのキューソート

ここに画像の説明を挿入します
これは通常の UI インターフェイスです。中央の 3D キャラクターを中心に回転するため、一見すると 3D 回転図のように見えますが、実際には、全体を完成させるために 2D 回転図が使用されています。インターフェイス。
キャラクターは、レンダー テクスチャを使用して画像に追加されます。隠れたキャラクター モデルはカメラを通して照明され、画像はソート用の回転チャートに追加されます ()。中央のものは~ 線形補間を再計算するときにスケーリング値 zここに画像の説明を挿入します
を再計算します。計算結果は 0.75 です (直接 (填答案放入集合排序,也是可以实现效果) することもできます)
ここに画像の説明を挿入します
ご覧のとおり、並べ替えは常に中央の位置に配置され、効果が得られます

ここに画像の説明を挿入します
スケーリング値の計算方法が異なるため、最終製品は若干異なります。

float scale = max * (1 - p) + min * p;
float scale = (max-min)*p+min; 

前者は各 Img の境界を直接スケーリングしますが、後者は最初に補間を計算してからスケーリングするという 2 つの異なるスケーリング方法により、異なる効果が作成されます。

通常生成される 2D 回転画像は 3D 画像のように傾けることができないため、画像に新しい位置を追加する場合は、Y 軸を縮小することで同様の効果を得ることができます。

            float z = Mathf.Cos(i * ang + allang) * r;
            //通过z值计算近大远小  计算 z轴 0-1
            float p = (r + z) / (r + r);
            float scale = max * (1 - p) + min * p; 

            list[i].transform.localPosition = new Vector2(x, z/10);

おすすめ

転載: blog.csdn.net/m0_57252175/article/details/132439847