2025-06-10 16:11:48 +08:00
|
|
|
|
//#define EDITOR_TEST
|
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
using Game;
|
|
|
|
|
|
using FairyGUI;
|
|
|
|
|
|
using LuaInterface;
|
|
|
|
|
|
using System.Collections;
|
|
|
|
|
|
using UnityEngine.Networking;
|
|
|
|
|
|
using System.IO;
|
|
|
|
|
|
using taurus.client;
|
|
|
|
|
|
using taurus.unity;
|
|
|
|
|
|
|
|
|
|
|
|
public class GameApplication : MonoBehaviour
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static GameApplication Instance;
|
|
|
|
|
|
|
|
|
|
|
|
public bool buildApp;
|
|
|
|
|
|
public bool printLog=false;
|
|
|
|
|
|
public bool accountTest=false;
|
|
|
|
|
|
[HideInInspector]
|
|
|
|
|
|
public bool isAndroid64bit = false;
|
|
|
|
|
|
|
|
|
|
|
|
public AudioSource musicSource;
|
|
|
|
|
|
public AudioSource voiceSource;
|
|
|
|
|
|
|
|
|
|
|
|
DSLuaClient _luaClient;
|
|
|
|
|
|
public int StopMusic { get; set; }
|
|
|
|
|
|
public string GameInfo { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
int _musicValue, _soundValue;
|
|
|
|
|
|
bool _musicMute, _soundMute;
|
|
|
|
|
|
private TestConsole _console=null;
|
|
|
|
|
|
ExceptionReporter _ex_reporter=null;
|
|
|
|
|
|
private LuaFunction _share_callback;
|
|
|
|
|
|
private LuaFunction _wxlogin_callback;
|
|
|
|
|
|
|
|
|
|
|
|
void Awake()
|
|
|
|
|
|
{
|
|
|
|
|
|
TaurusUnity.init();
|
|
|
|
|
|
|
|
|
|
|
|
#if Build_App
|
|
|
|
|
|
buildApp = true;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
#if UNITY_STANDALONE_WIN
|
|
|
|
|
|
accountTest = true;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
#if NOT_ACCOUT_TEST
|
|
|
|
|
|
accountTest = false;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
Instance = this;
|
|
|
|
|
|
Screen.sleepTimeout = SleepTimeout.NeverSleep;
|
|
|
|
|
|
Application.targetFrameRate = 60;
|
|
|
|
|
|
Application.runInBackground = true;
|
|
|
|
|
|
Screen.fullScreen = true;
|
|
|
|
|
|
UnityEngine.Debug.developerConsoleVisible = false;
|
|
|
|
|
|
Input.multiTouchEnabled = false;
|
|
|
|
|
|
Stage.inst.soundVolume = 0;
|
|
|
|
|
|
MusicValue = PlayerPrefs.GetInt("music", 50);
|
|
|
|
|
|
SoundValue = PlayerPrefs.GetInt("sound", 50);
|
|
|
|
|
|
MusicMute = PlayerPrefs.GetInt("musicMute", 1) == 1;
|
|
|
|
|
|
SoundMute = PlayerPrefs.GetInt("soundMute", 1) == 1;
|
|
|
|
|
|
|
|
|
|
|
|
NetManager.TIMEOUT_TIME = 10;
|
|
|
|
|
|
NetManager.debug_print = false;
|
2025-08-21 21:35:24 +08:00
|
|
|
|
|
|
|
|
|
|
// UIConfig.depthSupportForPaintingMode = false;
|
|
|
|
|
|
// Singleton<LogManager>.GetInstance();
|
|
|
|
|
|
|
2025-06-10 16:11:48 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Use this for initialization
|
|
|
|
|
|
void Start()
|
|
|
|
|
|
{
|
|
|
|
|
|
SDKCallBack.Instance.AuthCallback = __OnWXCallBack;
|
|
|
|
|
|
SDKCallBack.Instance.ShareCallback = _OnSharecallback;
|
2025-08-21 21:35:24 +08:00
|
|
|
|
|
2025-06-10 16:11:48 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
internal void StartGame()
|
|
|
|
|
|
{
|
|
|
|
|
|
_luaClient = gameObject.AddComponent<DSLuaClient>();
|
|
|
|
|
|
// _console = new TestConsole();
|
|
|
|
|
|
// _ex_reporter = new ExceptionReporter();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void RestartGame()
|
|
|
|
|
|
{
|
|
|
|
|
|
_luaClient = null;
|
|
|
|
|
|
Voice.CrealRecord();
|
|
|
|
|
|
//_console.Close();
|
|
|
|
|
|
//_console = null;
|
|
|
|
|
|
VerCheck.Instance.ResetGame();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void Update()
|
|
|
|
|
|
{
|
|
|
|
|
|
TaurusUnity.update();
|
|
|
|
|
|
__PlayMusic();
|
|
|
|
|
|
//if (_console != null)
|
|
|
|
|
|
//{
|
|
|
|
|
|
// if (printLog)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// _console.Open();
|
|
|
|
|
|
// }
|
|
|
|
|
|
// else
|
|
|
|
|
|
// {
|
|
|
|
|
|
// _console.Close();
|
|
|
|
|
|
// }
|
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#if EDITOR_TEST
|
|
|
|
|
|
//void OnApplicationFocus(bool state)
|
|
|
|
|
|
//{
|
|
|
|
|
|
// if (state)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// if (_luaClient != null) _luaClient.OnApplicationActive();
|
|
|
|
|
|
// }
|
|
|
|
|
|
// else
|
|
|
|
|
|
// {
|
|
|
|
|
|
// //BestHTTP.HTTPManager.ClearRequestQueue();
|
|
|
|
|
|
// if (_luaClient != null)
|
|
|
|
|
|
// _luaClient.OnApplicationPause1();
|
|
|
|
|
|
// }
|
|
|
|
|
|
//}
|
|
|
|
|
|
#else
|
|
|
|
|
|
void OnApplicationPause(bool state)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UNITY_IPHONE || UNITY_ANDROID || UNITY_STANDALONE
|
|
|
|
|
|
if (!state)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (_luaClient != null) _luaClient.OnApplicationActive();
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
2025-07-18 16:02:20 +08:00
|
|
|
|
Debug.Log("UNITY Pause");
|
2025-06-10 16:11:48 +08:00
|
|
|
|
//NetManager.KillAllConnection();
|
|
|
|
|
|
if (_luaClient != null)
|
|
|
|
|
|
_luaClient.OnApplicationPause1();
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
void OnApplicationQuit()
|
|
|
|
|
|
{
|
|
|
|
|
|
TaurusUnity.destroy();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void UnExtendLua(LuaTable game_data)
|
|
|
|
|
|
{
|
|
|
|
|
|
var bundle = (string)game_data["bundle"];
|
|
|
|
|
|
var asset_path = bundle.Replace('.', '/');
|
|
|
|
|
|
|
|
|
|
|
|
#if UNITY_EDITOR && !PACK
|
|
|
|
|
|
var lua_dir = LuaConst.luaDir + "/extend_project/";
|
|
|
|
|
|
#else
|
|
|
|
|
|
var lua_dir = LuaConst.luaResDir+"/";
|
|
|
|
|
|
#endif
|
|
|
|
|
|
var luas = Directory.GetFiles(lua_dir+ asset_path, "*.lua", SearchOption.AllDirectories);
|
|
|
|
|
|
|
|
|
|
|
|
foreach(string lua in luas)
|
|
|
|
|
|
{
|
|
|
|
|
|
var moduleFileName = bundle+"." + Path.GetFileNameWithoutExtension(lua);
|
|
|
|
|
|
((DSLuaClient)LuaClient.Instance).Reload(moduleFileName);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void ShareLink(int id,string json_data, LuaFunction callback)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!buildApp) return;
|
|
|
|
|
|
#if UNITY_EDITOR || UNITY_STANDALONE
|
|
|
|
|
|
return;
|
|
|
|
|
|
#else
|
|
|
|
|
|
_share_callback = callback;
|
|
|
|
|
|
#if UNITY_IPHONE
|
|
|
|
|
|
PlatformIOS.ShareLink(id, json_data);
|
|
|
|
|
|
#elif UNITY_ANDROID
|
|
|
|
|
|
PlatformAndroid.Instance.ShareLink(id, json_data);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void _OnSharecallback()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (_share_callback != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
_share_callback.Call(1);
|
|
|
|
|
|
_share_callback.Dispose();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void CopyToClipboard(string input)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UNITY_EDITOR || UNITY_STANDALONE
|
|
|
|
|
|
TextEditor t = new TextEditor();
|
|
|
|
|
|
t.text = input;
|
|
|
|
|
|
t.OnFocus();
|
|
|
|
|
|
t.Copy();
|
|
|
|
|
|
#elif UNITY_IPHONE
|
|
|
|
|
|
PlatformIOS.CopyToClipboard(input);
|
|
|
|
|
|
#elif UNITY_ANDROID
|
|
|
|
|
|
PlatformAndroid.Instance.CopyTextToClipboard(input);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public int GetBatteryLevel()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!buildApp) return 100;
|
|
|
|
|
|
#if UNITY_EDITOR || UNITY_STANDALONE
|
|
|
|
|
|
return 100;
|
|
|
|
|
|
#else
|
|
|
|
|
|
#if UNITY_IPHONE
|
|
|
|
|
|
return Mathf.FloorToInt(PlatformIOS.GetBatteryLevel() * 100);
|
|
|
|
|
|
#elif UNITY_ANDROID
|
|
|
|
|
|
var lev = Mathf.FloorToInt(PlatformAndroid.Instance.GetBatteryLevel());
|
|
|
|
|
|
return lev;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void InitBugly(string androidID,string iosID){
|
|
|
|
|
|
|
|
|
|
|
|
if (_ex_reporter != null) {
|
|
|
|
|
|
_ex_reporter.init (androidID,iosID);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void SetBuglyUserID(string userid){
|
|
|
|
|
|
|
|
|
|
|
|
if (_ex_reporter != null) {
|
|
|
|
|
|
_ex_reporter.setUserID (userid);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void AddBuglyUserValue(string key,string value){
|
|
|
|
|
|
|
|
|
|
|
|
if (_ex_reporter != null) {
|
|
|
|
|
|
_ex_reporter.AddUserValue(key, value);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void __OnWXCallBack(int result, string json)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (_wxlogin_callback != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
_wxlogin_callback.Call(result, json);
|
|
|
|
|
|
if (result != 10) _wxlogin_callback.Dispose();
|
|
|
|
|
|
}
|
|
|
|
|
|
if (result != 10) _wxlogin_callback = null;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void WXLogin(LuaFunction callback)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!buildApp) return;
|
|
|
|
|
|
#if UNITY_EDITOR || UNITY_STANDALONE
|
|
|
|
|
|
var json = "{\"headimgurl\":\"\",\"unionid\":\"mwxtest1000001\",\"\":1,\"nickname\":\"mwxtest1000001\",\"sex\":2}";
|
|
|
|
|
|
callback.Call(0, json);
|
|
|
|
|
|
#else
|
|
|
|
|
|
_wxlogin_callback = callback;
|
|
|
|
|
|
#if UNITY_IPHONE
|
|
|
|
|
|
PlatformIOS.WXLogin();
|
|
|
|
|
|
#elif UNITY_ANDROID
|
|
|
|
|
|
PlatformAndroid.Instance.WXLogin();
|
|
|
|
|
|
#endif
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public string GetRoomID()
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UNITY_EDITOR || UNITY_STANDALONE
|
|
|
|
|
|
return string.Empty;
|
|
|
|
|
|
#else
|
|
|
|
|
|
#if UNITY_IPHONE
|
|
|
|
|
|
return PlatformIOS.GetRoomID();
|
|
|
|
|
|
#elif UNITY_ANDROID
|
|
|
|
|
|
return PlatformAndroid.Instance.GetRoomID();
|
|
|
|
|
|
#endif
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void PlayMuisc(string path)
|
|
|
|
|
|
{
|
|
|
|
|
|
var clip = ResourcesManager.LoadObject<AudioClip>(path);
|
|
|
|
|
|
musicSource.clip = clip;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void PlayMuisc(string groupName,string path)
|
|
|
|
|
|
{
|
|
|
|
|
|
var clip = ResourcesManager.LoadObjectByGroup<AudioClip>(path,groupName);
|
|
|
|
|
|
musicSource.clip = clip;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void PlayVoice(AudioClip clip)
|
|
|
|
|
|
{
|
|
|
|
|
|
voiceSource.PlayOneShot(clip, 1f);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void PlaySound(string path)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (_soundValue < 5) return;
|
|
|
|
|
|
var clip = ResourcesManager.LoadObject<AudioClip>(path);
|
|
|
|
|
|
Stage.inst.PlayOneShotSound(clip);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void PlaySound(string groupName, string path)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (_soundValue < 5) return;
|
|
|
|
|
|
var clip = ResourcesManager.LoadObjectByGroup<AudioClip>(path, groupName);
|
|
|
|
|
|
Stage.inst.PlayOneShotSound(clip);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void __PlayMusic()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (_musicValue >= 5)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (StopMusic > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (musicSource.isPlaying) musicSource.Pause();
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!musicSource.isPlaying) musicSource.Play();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
if (musicSource.isPlaying) musicSource.Stop();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public int MusicValue
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
return _musicValue;
|
|
|
|
|
|
}
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
if (_musicValue != value)
|
|
|
|
|
|
{
|
|
|
|
|
|
_musicValue = value;
|
|
|
|
|
|
musicSource.volume = _musicValue / 100f;
|
|
|
|
|
|
PlayerPrefs.SetInt("music", _musicValue);
|
|
|
|
|
|
PlayerPrefs.Save();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public int SoundValue
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
return _soundValue;
|
|
|
|
|
|
}
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
if (_soundValue != value)
|
|
|
|
|
|
{
|
|
|
|
|
|
_soundValue = value;
|
|
|
|
|
|
Stage.inst.soundVolume = _soundValue / 100f;
|
|
|
|
|
|
PlayerPrefs.SetInt("sound", _soundValue);
|
|
|
|
|
|
PlayerPrefs.Save();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public bool SoundMute
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
return _soundMute;
|
|
|
|
|
|
}
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
if(_soundMute != value)
|
|
|
|
|
|
{
|
|
|
|
|
|
_soundMute = value;
|
|
|
|
|
|
//Stage.inst.mute = _soundMute;
|
|
|
|
|
|
PlayerPrefs.SetInt("soundMute", _soundMute ? 1 : 0);
|
|
|
|
|
|
PlayerPrefs.Save();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public bool MusicMute
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
return _musicMute;
|
|
|
|
|
|
}
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
if (_musicMute != value)
|
|
|
|
|
|
{
|
|
|
|
|
|
_musicMute = value;
|
|
|
|
|
|
musicSource.mute = _musicMute;
|
|
|
|
|
|
PlayerPrefs.SetInt("musicMute", _musicMute ? 1 : 0);
|
|
|
|
|
|
PlayerPrefs.Save();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void InitBaiduMap(string id)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UNITY_ANDROID
|
|
|
|
|
|
|
|
|
|
|
|
#elif UNITY_IPHONE
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[LuaInterface.NoToLua]
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 版本号
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public static readonly Version AppVersion = new Version("1.0.0");
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 审核用于隐藏相关内容
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public static bool HideSdk = false;
|
|
|
|
|
|
|
|
|
|
|
|
public void QuitGameOnUnity()
|
|
|
|
|
|
{
|
|
|
|
|
|
Application.Quit();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|