Unity は調整可能なサブ画面 (小さなマップなど) エフェクトを実装します

参考記事:Unity小マップの実現_Irena^_^のブログ - CSDN blog_unity小マップ

Unity の小さな地図の作成 - Tencent Cloud 開発者コミュニティ - Tencent Cloud

原因: 自作プログラムが下部抵抗ボックスのノブを調整するとき、画面の右上隅の表示を監視し続ける必要があります。

カメラを少し拡大すると、そのうちの1つだけが見えます。

機器の画面測定値を常にディスプレイに表示したいと考えています。このサブになる

 空のプロジェクトを開きます。新しい円柱とカメラの例を作成し、その名前を MiniCamera に変更し、円柱の上部が見えるまで MiniCamera を移動します (ゲーム パネルにどのカメラが表示されているかに関係なく)。

 [プロジェクト]パネルで新しいレンダー テクスチャを作成し(右クリック [作成]---[レンダー テクスチャ])、名前を MiniTexture に変更します。

 MiniCamera をクリックし、インスペクター パネルを調整します。

投影モードを正投影に変更します (2D 効果のみが必要なため、透視カメラから直交カメラに切り替えます)。

新しく作成した MiniTexture をターゲット テクスチャにドラッグします (カメラはリアルタイム レンダリング結果をこのテクスチャ マップに保存します)。

オーディオリスナーをオフにする

MiniCamera でシリンダー上部が大きく見えるように、実際の状況に応じてサイズを調整します。

階層パネルで新しいキャンバスを作成し、その下に画像を作成し (キャンバスと同じサブパネルに)、それを背景として使用し、透明にして、画像を適切な位置 (右上など) に調整します。コーナー)

 念のため操作を説明しますと、階層パネルで新しく作成した画像をクリックし、インスペクターの丸1のカラーをクリックして、丸2のAを一番下に引っ張ります。

 

 画像を右クリックしてRaw画像を作成します

 MiniTexture をテクスチャ上にドラッグします

 この時点で、ゲームパネル上の適切なサブ画面の効果がすでに確認できます。

次のステップは、サブ画面のスケーリングを制御することです。画像を直接右クリックしてボトムスを2つ作成します(TextmeshProをインストールしました)

 名前変更 F2 操作を直接実行し、RawImage が 2 つの下部の上にある順序であることを確認します。そうしないと、ズームイン後にサブ画面がボタンをブロックします。

 下の対応する写真は、 拡大アイコンを作るのが面倒だったので、√の写真を撮って組み合わせ、  上部のサイズを変更して下の写真を詰め込みました

 画像を作成するのが面倒な場合は、ButtonBig の下のテキスト (TMP) をクリックし、右側のテキスト入力の下にプラス記号「+」を入力し、下のフォント サイズのサイズを調整できます。ButtonSmall も同じ理由でマイナス記号を使用します。TextMeshPro なしで動作するかどうかはわかりません。とにかく、持っているかどうかは関係ありません。チュートリアルは私自身の記憶を促進するために非常に詳細で長文です。

 ハゲ頭さん、ボタン スクリプトを作成します。プロジェクト パネルを右クリックして新しい C#Script を作成し、名前を MiniC に変更します。

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MiniC : MonoBehaviour
{
    void Start()
    {
        
    }
    void Update()
    {
        
    }
    public float pngMoveSpeed;
    public void OnClickBig()
    {
        Vector3 v3 = transform.localScale;
        transform.localScale = new Vector3(v3.x * 2f, v3.y * 2f, v3.z * 2f);
        transform.Translate(-transform.up * pngMoveSpeed);
        transform.Translate(-transform.right * pngMoveSpeed);
    }
    public void OnClickSmall()
    {
        Vector3 v3 = transform.localScale;
        transform.localScale = new Vector3(v3.x * 0.5f, v3.y * 0.5f, v3.z * 0.5f);
        transform.Translate(transform.right * pngMoveSpeed);
        transform.Translate(transform.up * pngMoveSpeed);
    }
}

 //直接全選択→コピー→独自スクリプト→全選択→貼り付け→保存

 RawImage を選択し、コピーしたMiniC を [コンポーネントの追加] に直接ドラッグします。

 サポートを外した後、PNG Move Speedを設定し、自分で調整します

 [階層] パネルで [ButtonBig] をクリックし、OnClick() の下の小さなプラス記号をクリックしてクリック応答イベントを追加します。

RawImage を None (オブジェクトの場所) にドラッグします。

 点1の位置

OnClickBig() を選択します。ButtonSmall も同じです。OnClickSmall() を選択します。

 

 テストして、プラス記号をクリックします。OK、チュートリアルは終了です

 

おすすめ

転載: blog.csdn.net/weixin_59312879/article/details/126835289
おすすめ