HCI/Unity

[Unity] Slider 값 .CSV 형태로 저장하기

sillon 2024. 10. 17. 11:45
728x90
반응형

 

각 페이지의 슬라이더 값을 받아오고 Submit 버튼을 누르면 엑셀 파일에 날짜, 값 등이 저장되는 과정입니다.

 

슬라이더 화면

 

 

종료 화면

이런 식으로 슬라이더에 입력된 값을 저장해보겠습니당

 

1. 게임 오브젝트 SliderValueManager 생성

 

 

2. SliderValueMander.cs

using System;
using System.IO;
using UnityEngine;
using UnityEngine.UI;

public class SliderValueManager : MonoBehaviour
{
    public Slider page0Slider;  // Page 0 슬라이더
    public Slider page1Slider;  // Page 1 슬라이더
    public Slider page2Slider;  // Page 2 슬라이더

    public Button buttonSubmit;  // 제출 버튼

    private string csvFilePath;
    private int entryIndex = 1;  // 저장할 때 사용할 인덱스

    private void Start()
    {
        // CSV 파일 경로 설정 (프로젝트 경로)
        csvFilePath = Application.dataPath + "/SliderValues.csv";

        // 버튼 클릭 이벤트 설정
        buttonSubmit.onClick.AddListener(AppendSliderValuesToCSV);

        // 파일이 없으면 헤더 추가
        if (!File.Exists(csvFilePath))
        {
            using (var writer = new StreamWriter(csvFilePath))
            {
                writer.WriteLine("Index,Date,Time,Page0,Page1,Page2");
            }
        }
    }

    // 슬라이더 값과 날짜, 시간 CSV에 추가
    private void AppendSliderValuesToCSV()
    {
        // 현재 날짜와 시간
        string currentDate = DateTime.Now.ToString("yyyy-MM-dd");
        string currentTime = DateTime.Now.ToString("HH:mm:ss");

        // CSV에 새로운 행 추가
        using (var writer = new StreamWriter(csvFilePath, true))
        {
            writer.WriteLine($"{entryIndex},{currentDate},{currentTime},{page0Slider.value},{page1Slider.value},{page2Slider.value}");
        }

        entryIndex++;  // 인덱스 증가
        Debug.Log("CSV 파일에 새로운 슬라이더 값이 저장되었습니다.");
    }
}

 

3. Insepector에 적용

각 페이지에 해당하는 슬라이더와, Button Submit을 통해 엑셀에 값을 저장해줄 버튼을 넣어줍시다.

 

그럼 끝입니다.

 

각 슬라이더에 값을 넣고 마지막 페이지에 와서 Submit 버튼을 눌러주면

이렇게 각각 슬라이더 값을 적용한 뒤, Submit 버튼을 누르면 

 

Assets 파일 안에 아래와 같이 저장이 됩니다.

 

끝!

 

이렇게해서 데이터를 잘 저장해보아요 ^_^

 

 

728x90
반응형