Unity 選択した画像をscrollViewで表示

 

 

画像を選択して、大きい画像には、スクロールバーで表示できるコードを作ったよ。

 

 

 

 

 

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEditor;

public class ScrollPicture : MonoBehaviour
{
    private Texture2D loadTexture;
    private Vector2 scrollViewVector = new Vector2(0,0);
    public Rect scrollViewRect1;
    public Rect scrollViewRect2;  

    void Start()
    {
        //スタート時(宣言時×)に値を格納しないと、コードを更新してもpubulicの値が変わらなくなる。
        //第3引数、第4引数はScrollView自体の表示範囲。scrollViewRect2が範囲を超えるとスクロールバーが付く。
        scrollViewRect1 = new Rect (20, 80, 450, 300);    
    }

    private void OnGUI()
    {
        if (GUI.Button(new Rect(15, 20, 100, 50), "画像選択"))
        {
            //画像のパスを取得。
            var sourcePath = EditorUtility.OpenFilePanel("Select Image", "", "png,jpg,jpeg");
            if (!string.IsNullOrEmpty(sourcePath))
            {
                //画像のサイズは自由(LoadImage時に自然に変わる)
                loadTexture = new Texture2D(0, 0);
                loadTexture.LoadImage(System.IO.File.ReadAllBytes(sourcePath));
            }
        }
 
        if (loadTexture != null)
        {
            //ロードした画像の情報を変数に格納。
            var rect = GUILayoutUtility.GetRect(loadTexture.width, loadTexture.height, GUILayout.MaxWidth(loadTexture.width), GUILayout.MaxHeight(loadTexture.height));     
            //第3,4引数はScrollViewの中身の表示範囲。
            scrollViewRect2 = new Rect (0, 0, loadTexture.width, loadTexture.height);  
            //スクロールビューを表示する。
            scrollViewVector = GUI.BeginScrollView (scrollViewRect1, scrollViewVector, scrollViewRect2);
            //画像を描画する。
            EditorGUI.DrawTextureTransparent(rect, loadTexture);
        }
        // スクロールビューを終了する。
        GUI.EndScrollView();
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

お名前


削除キー(必須)

コメント(必須)


サイト内検索

twiter

CONTENTS

 

 

 

くるくるサンプルコード

 

 

 

【↓広告↓】