<์ƒํ™ฉ ์„ค๋ช…>

์œ ๋‹ˆํ‹ฐ GPGS์— ๊ด€ํ•˜์—ฌ ์•Œ๋ ค์ฃผ์‹œ๋Š” ๊ณ ๋ผ๋‹ˆ๋‹˜์˜ ์˜์ƒ์„ ๋”ฐ๋ผ ๋งŒ๋“ค๋‹ค๊ฐ€ ํด๋ผ์šฐ๋“œ ์ €์žฅ, ๋กœ๋“œ, ์‚ญ์ œ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค!
๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ๊ณผ ๋กœ๊ทธ์•„์›ƒ, ์—…์ , ๋ฆฌ๋”๋ณด๋“œ๋„ ์ „๋ถ€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ๊ณ ๋ผ๋‹ˆ๋‹˜์˜ ์˜์ƒ์„ ๋ณด๋ฉฐย ๊ตฌ๊ธ€ ํ”Œ๋ ˆ์ด ์ฝ˜์†”์—์„œ ํด๋ผ์šฐ๋“œ ์‹œ์Šคํ…œ์— ํ•„์š”ํ•œ ์„ธํŒ…์€ ์ „๋ถ€ ๋งž์ณค์œผ๋ฉด ๋ถˆ๊ตฌํ•˜๊ณ  ์œ„์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ์ง€์†์ ์œผ๋กœ ๋œจ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”ใ… ใ… 


<๋™์˜์ƒ>

https://www.youtube.com/watch?v=aCG5nixgyVw

์œ ๋‹ˆํ‹ฐ GPGS ๊ตฌ๊ธ€ ํ”Œ๋ ˆ์ด ๊ฒŒ์ž„ ์„œ๋น„์Šค์˜ ๋ชจ๋“ ๊ฒƒ - 2021.11์›”์œ ๋‹ˆํ‹ฐ GPGS 2021.11์›” ๊ธฐ์ค€์œผ๋กœ ์ตœ์‹ ํ™”ํ•˜์—ฌ ํ†ตํ•ฉํ–ˆ์Šต๋‹ˆ๋‹คGPGSBinder ํด๋ž˜์Šค์—๋Š” ๋กœ๊ทธ์ธ, ํด๋ผ์šฐ๋“œ ์ €์žฅ, ์—…์ , ๋ฆฌ๋”๋ณด๋“œ, ์ด๋ฒคํŠธ๊ธฐ๋Šฅ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค์ž˜ ์‚ฌ์šฉํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค# ํƒ€์ž„๋ผ์ธ0:00 ๋ชฉ์ฐจ1:46 ์œ ๋‹ˆํ‹ฐ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ๊ณผ ์…‹ํŒ…5:08 Google Play Gam...www.youtube.com


<์ฝ”๋“œ ์ถœ์ฒ˜>

https://goraniunity2d.blogspot.com/2021/11/gpgs-202111.html


<์ฝ”๋“œ>

using GooglePlayGames.BasicApi.Events;

using GooglePlayGames.BasicApi.SavedGame;

using GooglePlayGames;

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEngine.UI;

using GooglePlayGames.BasicApi;

using UnityEditor.Rendering.LookDev;


public class Title_Screen_Settings : MonoBehaviour

{

ย  ย  public GameObject GuideBoard;

ย  ย  public GameObject SettingBoard;

ย  ย  public Image Setting_Button;


ย  ย  public GameObject SaveBoard;

ย  ย  public GameObject LoadBoard;

ย  ย  public GameObject DeleteBoard;


ย  ย  public string log;


ย  ย  public void Settings()

ย  ย  {

ย  ย  ย  ย  GuideBoard.SetActive(true);

ย  ย  ย  ย  SettingBoard.SetActive(true);


ย  ย  ย  ย  Setting_Button.raycastTarget = false;

ย  ย  }


ย  ย  public void Wait()

ย  ย  {

ย  ย  ย  ย  Invoke("Return", 0.25f);

ย  ย  }


ย  ย  private void Return()

ย  ย  {

ย  ย  ย  ย  GuideBoard.SetActive(false);

ย  ย  ย  ย  SettingBoard.SetActive(false);

ย  ย  ย  ย  SaveBoard.SetActive(false);

ย  ย  ย  ย  LoadBoard.SetActive(false);

ย  ย  ย  ย  DeleteBoard.SetActive(false);


ย  ย  ย  ย  Setting_Button.raycastTarget = true;

ย  ย  }


ย  ย  public void Save()

ย  ย  {

ย  ย  ย  ย  Invoke("SaveCloud", 0.25f);

ย  ย  }


ย  ย  public void SaveCloud()

ย  ย  {

ย  ย  ย  ย  GuideBoard.SetActive(true);

ย  ย  ย  ย  SaveBoard.SetActive(true);


ย  ย  ย  ย  GuideBoard.GetComponent<GuideBoard_Damping_Move>().PanelDown();

ย  ย  }


ย  ย  public void SaveCloudConfirm()

ย  ย  {

ย  ย  ย  ย  GPGSBinder.Inst.SaveCloud("mysave", "want data", success => log = $"{success}");

ย  ย  }


ย  ย  public void Load()

ย  ย  {

ย  ย  ย  ย  Invoke("LoadCloud", 0.25f);

ย  ย  }


ย  ย  public void LoadCloud()

ย  ย  {

ย  ย  ย  ย  GuideBoard.SetActive(true);

ย  ย  ย  ย  LoadBoard.SetActive(true);


ย  ย  ย  ย  GuideBoard.GetComponent<GuideBoard_Damping_Move>().PanelDown();

ย  ย  }


ย  ย  public void LoadCloudConfirm()

ย  ย  {

ย  ย  ย  ย  GPGSBinder.Inst.LoadCloud("mysave", (success, data) => log = $"{success}, {data}");

ย  ย  }


ย  ย  public void Delete()

ย  ย  {

ย  ย  ย  ย  Invoke("DeleteCloud", 0.25f);

ย  ย  }


ย  ย  public void DeleteCloud()

ย  ย  {

ย  ย  ย  ย  GuideBoard.SetActive(true);

ย  ย  ย  ย  DeleteBoard.SetActive(true);


ย  ย  ย  ย  GuideBoard.GetComponent<GuideBoard_Damping_Move>().PanelDown();

ย  ย  }


ย  ย  public void DeleteCloudConfirm()

ย  ย  {

ย  ย  ย  ย  GPGSBinder.Inst.DeleteCloud("mysave", success => log = $"{success}");

ย  ย  }


ย  ย  public void CloudWait()

ย  ย  {

ย  ย  ย  ย  Invoke("Return", 0.25f);

ย  ย  }

}


<์˜ค๋ฅ˜>

NullReferenceException: Object reference not set to an instance of an object

GPGSBinder.LoadCloud (System.String fileName, System.Action`2[T1,T2] onCloudLoaded) (at Assets/GPGSBinder.cs:67)

Title_Screen_Settings.LoadCloudConfirm () (at Assets/Screens Assets/Title Screen/Scripts/Title_Screen_Settings.cs:80)

UnityEngine.Events.InvokableCall.Invoke () (at <6afd1274f120405096bc1ad9e2010ba6>:0)

UnityEngine.Events.UnityEvent.Invoke () (at <6afd1274f120405096bc1ad9e2010ba6>:0)

UnityEngine.UI.Button.Press () (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/UI/Core/Button.cs:70)

UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/UI/Core/Button.cs:114)

UnityEngine.EventSystems.ExecuteEvents.Execute (UnityEngine.EventSystems.IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/ExecuteEvents.cs:57)

UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] functor) (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/ExecuteEvents.cs:272)

UnityEngine.EventSystems.EventSystem:Update() (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/EventSystem.cs:501)