Unity 내에서 얻은 데이터를 CSV로 내보내는 방법

11906 단어 CSVC#내보내기Unity

1. 소개



Unity 게임 내에서 얻은 데이터를 csv로 내보내는 방법에 대한 기사를 씁니다.

특히, 두 GameObject의 작업 기록을 csv에 시계열로 내보내는 스크립트를 작성합니다.

2. 준비



2.1. 준비하는 GameObject



준비하는 GameObject는 3개입니다.
  • F … 빨간색 GameObject
  • J … 하늘색 GameObject
  • SaveCsv … EmptyGameObject



  • 2.2. 준비할 스크립트



    준비는 스크립트도 3개입니다.
  • SampleFScript … F 용 스크립트
  • SampleJScript … J 용 스크립트
  • SampleSaveCsvScript … SaveCsv 용 스크립트



  • 3. 스크립트에 작성



    3.1. SampleSaveCsvScrip의 코드 해설



    먼저 csv에 저장하는 코드를 SampleSaveCsvScrip에 작성합니다.

    3.1.1. void Start()



    인용원 사이트①에서 자세하게 해설되고 있습니다.
    좀 더 설명하면 새로 csv 파일을 만들고 {} 안의 요소분 csv를 추가하는 코드입니다.

    3.1.2. public void SaveData(string txt1, string txt2, string txt3)



    "s1"로 작성한 헤더의 수분 "string txt"를 준비하십시오.
    「public」을 붙이는 것으로 다른 스크립트에서도 「SaveData(~)」를 사용할 수 있게 됩니다.
    기타는 위와 같습니다.

    3.1.2. void Update()



    Enter 키를 누르면 csv에 대한 쓰기를 종료하는 코드를 작성합니다.

    SampleSaveCsvScrip
    using System.IO;
    using System.Text;
    
    public class SampleSaveCsvScript : MonoBehaviour
    {
        private StreamWriter sw;
    
        void Start()
        {
            sw = new StreamWriter(@"SaveData.csv", true, Encoding.GetEncoding("Shift_JIS"));
            string[] s1 = { "F", "J", "time" };
            string s2 = string.Join(",", s1);
            sw.WriteLine(s2);
        }
    
        public void SaveData(string txt1, string txt2, string txt3)
        {
            string[] s1 = { txt1, txt2, txt3 };
            string s2 = string.Join(",", s1);
            sw.WriteLine(s2);
        }
    
        void Update()
        {
            if (Input.GetKeyDown(KeyCode.Return))
            {
                sw.Close();
            }
    
        }
    }
    
    

    3.2. SampleFScript 코드 해설



    SampleFScript는 F 키를 감지하는 코드를 설명합니다.

    3.2.1. void Start()



    인용원 사이트②에서 자세하게 해설되고 있습니다.
    철저한 설명을하면 다른 스크립트를 참조하는 코드를 작성합니다.

    3.2.2. void Update()



    F 키를 누르면 csv에 'F'와 '언제 밀렸는지'라는 정보가 추가됩니다.

    SampleFScrip
    using UnityEngine;
    using System.IO;
    
    public class SampleFScript : MonoBehaviour
    {
        private float time;
        private StreamWriter sw;
    
        GameObject SaveCsv;
        SampleSaveCsvScript SampleSaveCsvScript;
    
        void Start()
        {
            SaveCsv = GameObject.Find("SaveCsv");
            SampleSaveCsvScript = SaveCsv.GetComponent<SampleSaveCsvScript>();
        }
    
        void Update()
        {
            time += Time.deltaTime;
    
            if (Input.GetKeyDown(KeyCode.F))
            {
                SampleSaveCsvScript.SaveData("F", " ", time.ToString());
            }
        }
    }
    
    
    

    3.3. SampleJScript 코드 해설



    SampleJScript는 J 키를 감지하는 코드를 작성합니다.

    3.3.1. void Start()



    위와 같습니다.

    3.2.2. void Update()



    J 키를 누르면 csv에 "J"와 "언제 밀렸는지"라는 정보가 추가됩니다.

    SampleJScrip
    using UnityEngine;
    using System.IO;
    
    public class SampleFScript : MonoBehaviour
    {
        private float time;
        private StreamWriter sw;
    
        GameObject SaveCsv;
        SampleSaveCsvScript SampleSaveCsvScript;
    
        void Start()
        {
            SaveCsv = GameObject.Find("SaveCsv");
            SampleSaveCsvScript = SaveCsv.GetComponent<SampleSaveCsvScript>();
        }
    
        void Update()
        {
            time += Time.deltaTime;
    
            if (Input.GetKeyDown(KeyCode.J))
            {
                SampleSaveCsvScript.SaveData(" ", "J", time.ToString());
            }
        }
    }
    
    
    

    4. 확인



    실제로 게임을 움직여 확인을 해봅니다(여기서는 생략).

    그러면 아래와 같은 CSV가 나옵니다.

    「F」나 「J」 그리고 「언제 밀렸는가」라고 하는 정보가 제대로 써내지고 있는 것을 확인할 수 있다고 생각합니다.

    5. 마지막으로



    Unity의 게임 내에서 얻은 데이터를 csv에 내보내는 방법에 대해 써 보았습니다 만, 어떻습니까?
    이해하기 어려운 점이나 잘못된 점이 있으면 지적해 주시면 감사하겠습니다.

    참고 URL



    ① Unity 2D] 데이터 저장 (외부 파일 CSV)
    h tps // 히 gh p 로g 라메 r. 코 m/2017/12/10/우니 ty-사아다타-오테ぇr후아/

    ② [Unity] 다른 객체에 대한 스크립트의 변수를 참조하거나 함수를 실행합니다.
    htps : // 코 m / 츠카사 _ 우아 r_ 파 r r / ms / 09d4bc55f3556b9b3b

    좋은 웹페이지 즐겨찾기