void OnBecameInvisible() {
  Destory(gameObject);
}

게임오브젝트가 화면밖으로 이동되어 보이지 않을때 호출되는 콜백함수이다.

총알같은거 만들어 삭제할 때 사용하면 될듯


Posted by 빵원군
,
구글 스프레드시트 스크립트이다.

도구 - 스크립트 편집기로 작성하면된다.



function onOpen() {
    SpreadsheetApp.getUi().createMenu("Export JSON").addItem("Export Say JSON", "exportSheet").addToUi();
}

function exportSheet(e) {  
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getActiveSheet();
    var Values = arrayTranspose_(sheet.getDataRange().getValues());

    var objects = [];  

    for (var i = 0; i < Values.length; ++i) {
        var object = {};
        object["Situation"] = Values[i][1];
        var say = [];
        for (var j = 2; j < Values[i].length; ++j) {
            if (isCellEmpty_(Values[i][j]))
                continue;

            say.push(Values[i][j])
        }
        object["Content"] = say;
        objects.push(object);
    }

    var json = JSON.stringify(objects, null, 4);
    return displayText_(json);
}

function displayText_(text) { 
  
  var html = HtmlService.createTemplateFromFile("Index");
  html.json_data = text;
  var htmlout = html.evaluate();  
  SpreadsheetApp.getUi().showModalDialog(htmlout, "JSON으로 내보내기");
}

function UploadToServer(json_data, pwd)
{
   var payload = {
     "password":pwd,
    "json_data":json_data
  };
  
  var options =
   {
     "method" : "post",
     "payload" : payload
   };
  var response = UrlFetchApp.fetch("http://www.myURL.com/my.php", options);
  var ui = SpreadsheetApp.getUi();
  ui.alert(response.getContentText());
  
}


// Given a JavaScript 2d Array, this function returns the transposed table.
// Arguments:
//   - data: JavaScript 2d Array
// Returns a JavaScript 2d Array
// Example: arrayTranspose([[1,2,3],[4,5,6]]) returns [[1,4],[2,5],[3,6]].
function arrayTranspose_(data) {
  if (data.length == 0 || data[0].length == 0) {
    return null;
  }

  var ret = [];
  for (var i = 0; i < data[0].length; ++i) {
    ret.push([]);
  }

  for (var i = 0; i < data.length; ++i) {
    for (var j = 0; j < data[i].length; ++j) {
      ret[j][i] = data[i][j];
    }
  }

  return ret;
}

// Returns true if the cell where cellData was read from is empty.
// Arguments:
//   - cellData: string
function isCellEmpty_(cellData) {
  return typeof(cellData) == "string" && cellData == "";
}


구글스크립트에서는 UI를 HTML로 작성한다.

Index.html

레퍼런스 : https://developers.google.com/apps-script/


Posted by 빵원군
,

게임데이터를 구글 스프레드시트를 통해작성할경우 손쉽게 문서공유를 통한 편집이 가능하다는 것이 좋다.

Unity를 통해 바로 구글 스프레드시트의 데이터를 가져오기에는 조금 무리가 보인듯 하다. 구글 로그인을 해야하는것..(다른방법이 있는지는 잘 모르겠다.)

해서 스프레드시트로 작성된 데이터를 JSON으로 출력해 웹서버로 전송한다.

웹서버의 POST방식으로 전송하므로 아무JSON이나 올릴수도 있으니 간단하게 암호를 입력하도록 적용하고 웹에서 받아서 암호가 맞을 경우 JSON을 저장해준다.

이후 Unity에서는 해당 웹서버의 JSON을 다운로드하여 게임에 적용하면 된다.

 

내용은 이렇다.

위와 같이 게임에 필요한 게임데이터를 구글스프레드시트를 통해 작성한다.


아래와 같이 Export JSON이라는 메뉴가 있으며


선택한경우 아래와 같이 스프레드시트의 데이터를 JSON으로 출력해준다.

암호를 입력하고 웹서버로 전송버튼을 누르면 해당 JSON과 암호가 POST로 웹서버에 전송된다.


웹서버에서 암호가 맞다면 JSON을 서버에 저장한다.


암호가 틀릴경우 아래와 같이 출력해준다.


JSON데이터는 웹서버에서 다운받아 사용하기 때문에 게임에 바로 적용이 된다.




Posted by 빵원군
,