티스토리 뷰
반응형
[Unity]유니티에서 Ftp 업로드 + 프로그래스바 구현(소스있음)
#기존에 공유했던 FTP 라이브러리를 기반으로 Unity에서 FTP 업로드 샘플 프로그램을 만들었다
#완성된 프로그램
#이미지와 텍스트를 이용하여 프로그래스바 구현
#기존 FTP 라이브러리 적용하여 연결
public class FtpController : MonoBehaviour
{
[SerializeField]
Text txt_value;
[SerializeField]
Text txt_count;
[SerializeField]
Text txt_filename;
[SerializeField]
RectTransform pg;
[SerializeField]
int max_pg;
Ftp ftp;
// Start is called before the first frame update
void Start()
{
Init();
}
// Update is called once per frame
void Update()
{
}
public void Init()
{
ftp = new Ftp("192.168.0.107", "ftpuser", "1");
ftp.UploadFileAsyncCompleted += Ftp_UploadFileAsyncCompleted;
ftp.UploadFileListChanged += Ftp_UploadFileListChanged;
ftp.UploadProgressChanged += Ftp_UploadProgressChanged;
}
public void Upload()
{
//업로드 할 업로드 객체 생성
List<FtpUploadDirectory> items = new List<FtpUploadDirectory>();
FtpUploadDirectory item = new FtpUploadDirectory("test");
//객체 별로 초기화 및 담기
FtpUploadFile ff1 = new FtpUploadFile("1.mp4", @"d:\a\1.mp4");
FtpUploadFile ff2 = new FtpUploadFile("2.mp4", @"d:\a\2.mp4");
FtpUploadFile ff3 = new FtpUploadFile("3.mp4", @"d:\a\3.mp4");
item.Add(ff1);
item.Add(ff2);
item.Add(ff3);
items.Add(item);
ftp.UploadFileListAsync(items);
}
string temp = string.Empty;
//업로드 진행 중 이벤트
private void Ftp_UploadProgressChanged(object sender, FtpUploadProgressChangedEventArgs e)
{
//이전 상태와 같으면
if (!temp.Equals(e.ProgressPercentage.ToString()))
{
pg.sizeDelta = new Vector2(((float)e.ProgressPercentage * (float)0.01) * max_pg,50);
txt_value.text = $"{e.ProgressPercentage.ToString()}%";
}
temp = e.ProgressPercentage.ToString();
}
private void Ftp_UploadFileListChanged(object sender, FtpUploadFileListChangedEventArgs e)
{
txt_filename.text = e.UploadFileName;
txt_count.text = $"{e.UploadCount}/{e.UploadTotalCount}";
}
private void Ftp_UploadFileAsyncCompleted(object sender, FtpAsyncCompletedEventArgs e)
{
clear();
}
public void clear()
{
txt_value.text = "0%";
txt_count.text = "0/0";
txt_filename.text = string.Empty;
pg.sizeDelta = new Vector2(0, 50);
}
}
#파일 첨부(Assets)
Ftp Dll
scripts
assets
#ftp sample #unity #유니티 #Ftp 업로드 #프로그래스바
반응형
'유니티(unity)' 카테고리의 다른 글
[unity/mediapipe] homuler/MediaPipeUnityPlugin 정상적으로 설치하기 (0) | 2022.07.29 |
---|---|
[유니티/unity] 시스템 볼륨 제어하기/ 윈도우 볼륨 제어하기(win 32 dll 이용) (0) | 2022.03.24 |
[unity/c#] RectTransform(2d개발) width or height 값 변경하기 (0) | 2022.02.15 |
[unity/c#]unity에서 c# 라이브러리 사용하기 (0) | 2022.02.15 |
[unity/c#]IniParser를 활용하여 ini를 외부 Config파일로 활용하기 (0) | 2022.01.20 |
댓글
반응형