[구글 독스 생성]
[생성]
=>데이터 입력 매체(독스)와 저장장소(스프레드 시트)를 설정한다 .
먼저 독스를 생성해주자 .
=>단답형과 객관식 질문 총 3개의 설문을 생성한다.
=>완료되었다면 응답탭 - Sheets에 연결을 눌러서 구글 시트를 생성한다 .
=>기존 시트가 있다면 활용하여도 무방하다 .
=>이렇게 시트에 내가 설정한 응답들이 들어온다. 이때 ,타임스탬프는 설문지를 통해 스프레드 시트를 만들면 자동으로
생성되는 항목인데 데이터를 입력한 시간을 입력해준다.
[유니티에 연결]
[URL 확인]
=>미리보기를 누르면 남들이 보는 설문지가 나온다 .
=> 여기서 우클릭을 통해 페이지의 소스를 확인 가능하다 .
=>Ctrl + f 를 통해 form action을 검색한다 .이것이 폼의 URL이다 .
[각 설문의 키값 확인]
각 설문에 값을 보내려면 키값이 필요하다.
=>설문지 화면에서 F12를 눌러 페이지 소스코드를 띄운다.
=>entry. 를 검색한다 .이것이 스프레드 시트 각각 열의 항목 (설문 내용)이다 .
설문 내용이 3개였으니 3개의 entry가 검색된다 .
(객관식이 추가되면 객관식은 entry. 키값과 entry.키값_sentinal 두개가 생성)
여튼 이렇게 얻은 entry.4504432와 같은 값이 설문의 키값이다 .
이렇게 얻은 키값은 다음과 같이 사용한다.
rivate string BASE_URL = "https://docs.google.com/forms/u/0/d/e/1FAIpQLSdx3l3iAnB1huupbESDs0ih4u49gXbgSs7CPi0oTUJIhsamkw/formResponse";
IEnumerator Post(string name, string email, string phone)
{
WWWForm _form = new WWWForm();
_form.AddField("entry.758232685", name);
_form.AddField("entry.454044342", email);
//_form.AddField("entry.1328042420", phone);
using (UnityWebRequest request=UnityWebRequest.Post(BASE_URL,_form))
{
yield return request.SendWebRequest();
if(request.result!=UnityWebRequest.Result.Success)
{
Debug.Log("실패");
}
request.Dispose();
}
}
=>아래 출처에서는 WWW를 사용했지만 이제는 UnityWebRequest를 사용한다 .
또한 웹리퀘스트를 사용하며 아래 버그가 생기는 문제가 있어 Dispose 까지 수행해주었다 .
A Native Collection has not been disposed, resulting in a memory leak.
Enable Full StackTraces to get more details.
=>만약 주관식이라면 다음과 같이 처리한다
_form.AddField("entry.454044342","옵션 1");
//해당 주관식의 이름을 넘겨준다
출처