ShareSDKRestoreScene.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using System;
  2. using UnityEngine;
  3. using System.Collections;
  4. namespace cn.sharesdk.unity3d {
  5. public class ShareSDKRestoreScene : MonoBehaviour
  6. {
  7. public RestoreSceneConfigure restoreSceneConfig;
  8. public static bool isInit;
  9. public static ShareSDKRestoreScene _instance;
  10. public static ShareSDKRestoreSceneImpl restoreSceneUtils;
  11. public static event RestoreSceneHandler onRestoreScene;
  12. public static event AnalysisCommandHandler OnAnalysisCommand;
  13. public delegate void RestoreSceneHandler(RestoreSceneInfo scene);
  14. public delegate void AnalysisCommandHandler(Hashtable parameters);
  15. void Awake() {
  16. if (!isInit) {
  17. isInit = true;
  18. }
  19. if (_instance != null) {
  20. Destroy(_instance.gameObject);
  21. }
  22. _instance = this;
  23. DontDestroyOnLoad(this.gameObject);
  24. }
  25. public static void setRestoreSceneListener(cn.sharesdk.unity3d.ShareSDKRestoreScene.RestoreSceneHandler sceneHandler) {
  26. onRestoreScene += sceneHandler;
  27. }
  28. public static void setCommandListener(cn.sharesdk.unity3d.ShareSDKRestoreScene.AnalysisCommandHandler commandHandler) {
  29. OnAnalysisCommand += commandHandler;
  30. }
  31. public void _RestoreCallBack(string data) {
  32. Hashtable res = (Hashtable)MiniJSON.jsonDecode(data);
  33. if (res == null || res.Count <= 0) {
  34. return;
  35. }
  36. string path = res ["path"].ToString();
  37. Hashtable customParams = (Hashtable)res ["params"];
  38. RestoreSceneInfo scene = new RestoreSceneInfo (path, customParams);
  39. onRestoreScene(scene);
  40. }
  41. public void _AnalysisCommandCallBack(string data) {
  42. Hashtable res = (Hashtable)MiniJSON.jsonDecode(data);
  43. if (res == null || res.Count <= 0) {
  44. return;
  45. }
  46. OnAnalysisCommand(res);
  47. }
  48. }
  49. }