using System; using System.Reflection; using UnityEngine; namespace Thousandto.UpdateForm.Center { //游戏中心的脚本代理 public class GameCenterScriptProxy { //游戏中心脚本类型 private static Type _gameCenterScriptType; //游戏脚本的对象 private static object _gameCenterScriptObj; //设置游戏启动参数 private static MethodInfo _miGameStart; //设置游戏启动参数 private static MethodInfo _miChangeToLogin; //设置原始对象 public static void SetOriginalObject(object obj) { if (obj != null) { _gameCenterScriptObj = obj; _gameCenterScriptType = obj.GetType(); } else { UnityEngine.Debug.LogError("获取GameCenterScript脚本失败!"); } } //设置游戏启动参数 public static void GameStart(string lan) { if (_miGameStart == null) { if (_gameCenterScriptType != null) { _miGameStart = _gameCenterScriptType.GetMethod("GameStart", BindingFlags.InvokeMethod | BindingFlags.Instance| BindingFlags.Public); } } if (_miGameStart != null) { Debug.Log("调用GameCenter.GameStart"); _miGameStart.Invoke(_gameCenterScriptObj, new object[] { lan }); } else { UnityEngine.Debug.LogError("获取GameCenterScript.GameStart方法失败!"); } } //切换到登录状态 public static void ChangeToLogin() { if (_miChangeToLogin == null) { if (_gameCenterScriptType != null) { _miChangeToLogin = _gameCenterScriptType.GetMethod("ChangeToLogin", BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Instance); } } if (_miChangeToLogin != null) { Debug.Log("调用GameCenter.ChangeToLogin"); _miChangeToLogin.Invoke(_gameCenterScriptObj, new object[] { }); } else { UnityEngine.Debug.LogError("获取GameCenterScript.ChangeToLogin方法失败!"); } } } }