Unity 공부

[Unity] PC에 저장된 이미지 파일 불러오기

때류기 2023. 11. 2. 17:14

이전 게시글에서 부분캡쳐한 이미지를 PC에 저장했었는데요.

이번에는 저장한 이미지를 불러와 게임에 적용시켜보겠습니다.

 

/// <summary>
    /// PhotoData 클래스의 정보로 PC에 저장된 PNG파일을 Image오브젝트의 이미지를 변환하는 함수  
    /// </summary>
    private void SetImageByPhotoData(PhotoData photoData)
    {
        if (photoData != null)
        {
            //파일이 저장된 위치와 파일이름을 붙여 저장
            string path = photoData.PathFloder + photoData.FileName;

            //저장 위치에 있는 PNG파일을 읽어 Byte배열로 변환후 저장
            byte[] bytes = File.ReadAllBytes(path);

            Texture2D tex = new Texture2D(2, 2);
            
            //byte[]로 변환된 PNG파일을 읽어 이미지로 변환
            tex.LoadImage(bytes);

            if (_image != null)
            {
                //재질의 메인 텍스처를 위에서 읽어들인 이미지로 변경
                _tempMat.mainTexture = tex;

                //재질을 null로 변경했다 다시 원래대로 변경한다. 이렇게 새로고침을 해야 이미지를 바꾼게 적용됨
                _image.material = null;
                _image.material = _tempMat;

            }
            else
            {
                Debug.LogError("사진을 보여줄 이미지 컴포넌트가 없습니다.");
            }
        }

        else
        {
            _image.material = null;
        }
    }

 

 

PhotoData 클래스

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

[Serializable]
public class PhotoData
{
    [SerializeField] private string _fileName;
    public string FileName => _fileName;

    [SerializeField] private string _date;
    public string Date => _date;

    private string _pathFloder;
    public string PathFloder => _pathFloder;

    public PhotoData(string fileName, string pathFloder)
    {
        _fileName = fileName;
        _date = DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss");
        _pathFloder = pathFloder;
    }

}

 

PhotoData클래스는 안써도됩니다!

파일 저장위치, 파일 명만 알면 쉽게 불러올 수 있습니다!

 

 

결과

이미지를 저장
저장한 이미지를 보관하고 있는 앨범

'Unity 공부' 카테고리의 다른 글

[Unity] 컷 아웃 마스크(Cutout Mask)  (0) 2024.01.24
[Unity] Behavior Tree(BT)  (0) 2023.12.11
[Unity] FSM 유한 상태 기계  (0) 2023.11.21
[Unity] 가중치 랜덤 뽑기  (0) 2023.11.05
[Unity] 부분 화면 캡처 기능  (0) 2023.10.31