private void OnLevelWasLoaded_(Scene scene, LoadSceneMode mode) { try { float x, y, z; if (WorldSystem.Instance.GetLookAt(out x, out y, out z)) { m_Target = null; m_IsFollow = false; m_TargetPos = new UnityEngine.Vector3(x, y, z); m_FixedYaw = 0; m_AngularSmoothLag = 0.001f; m_SnapSmoothLag = 0.001f; Cut(); } if (null != UnityEngine.Camera.main) { int layer = LayerMask.NameToLayer("Detail"); int detailMask = (1 << layer); if (GlobalVariables.Instance.IsHD) { UnityEngine.Camera.main.cullingMask |= detailMask; } else { UnityEngine.Camera.main.cullingMask &= (~detailMask); UnityEngine.GameObject go = UnityEngine.GameObject.Find("ResourceHolder"); if (go != null) { XOCp_ResourceHolder xocp = go.GetComponent <XOCp_ResourceHolder>(); if (xocp != null && xocp.m_ParticleArray.Length > 0) { UnityEngine.GameObject temp = null; for (int i = 0; i < xocp.m_ParticleArray.Length; i++) { temp = xocp.m_ParticleArray[i]; if (temp != null) { if (temp.layer == layer) { if (temp.GetComponent <UnityEngine.ParticleSystem>() != null) { temp.GetComponent <UnityEngine.ParticleSystem>().Stop(); } temp.SetActive(false); } } } } } } } } catch (System.Exception ex) { LogicSystem.LogFromGfx("MainCamera.OnLevelWasLoaded throw exception {0}\n{1}", ex.Message, ex.StackTrace); } }
public static UnityEngine.Vector3 ConvertVector3D(string vec) { UnityEngine.Vector3 vector = UnityEngine.Vector3.zero; try { string strPos = vec; string[] resut = strPos.Split(s_ListSplitString, StringSplitOptions.None); vector = new UnityEngine.Vector3(Convert.ToSingle(resut[0]), Convert.ToSingle(resut[1]), Convert.ToSingle(resut[2])); } catch (System.Exception ex) { LogicSystem.LogFromGfx("ImpactUtility.ConvertVector3D failed. ex:{0} st:{1}", ex.Message, ex.StackTrace); } return(vector); }
public void UnSubscribe() { try { for (int i = 0; i < m_EventList.Count; i++) { if (m_EventList[i] != null) { LogicSystem.EventChannelForGfx.Unsubscribe(m_EventList[i]); } } m_EventList.Clear(); } catch (Exception ex) { LogicSystem.LogFromGfx("[Error]:Exception:{0}\n{1}", ex.Message, ex.StackTrace); } }
public void SetCurrentServer(int serverId) { try { m_ServerId = serverId; // find server list from table ServerConfig serverConfig = ServerConfigProvider.Instance.GetDataById(serverId); if (serverConfig == null) { MyDictionary <int, object> serverDict = ServerConfigProvider.Instance.GetData(); foreach (ServerConfig cfg in serverDict.Values) { if (cfg != null) { serverConfig = cfg; m_ServerId = cfg.GetId(); break; } } } // update server configuration if (serverConfig != null) { StrDictionary strDic = StrDictionaryProvider.Instance.GetDataById(201); if (strDic != null) { lblServerName.text = "" + m_ServerId + strDic.m_String + serverConfig.ServerName; } else { lblServerName.text = "" + m_ServerId + serverConfig.ServerName; } NormLog.Instance.ServerName = serverConfig.ServerName; } } catch (Exception ex) { LogicSystem.LogFromGfx("[Error]:Exception:{0}\n{1}", ex.Message, ex.StackTrace); } }
public void InitSceneIntroduce(int sceneId, int grade, SubSceneType subType) { try { NGUITools.SetActive(wipePanel, false); NGUITools.SetActive(wipeBtn0.gameObject, false); NGUITools.SetActive(wipeBtn1.gameObject, false); if (subType == SubSceneType.Common) { m_SubSceneType = SubSceneType.Common; for (int i = 0; i < starArr.Length; ++i) { if (starArr[i] != null) { NGUITools.SetActive(starArr[i].gameObject, false); } } RoleInfo role = LobbyClient.Instance.CurrentRole; if (role.SceneInfo.ContainsKey(sceneId)) { NGUITools.SetActive(wipePanel, true); NGUITools.SetActive(wipeBtn0.gameObject, true); NGUITools.SetActive(wipeBtn1.gameObject, true); } } else { m_SubSceneType = SubSceneType.Master; for (int i = 0; i < starArr.Length; ++i) { if (starArr[i] != null) { NGUITools.SetActive(starArr[i].gameObject, true); } if (i < grade) { if (starArr[i] != null) { starArr[i].spriteName = c_BrightStar; } } else { if (starArr[i] != null) { starArr[i].spriteName = c_AshStar; } } } if (grade >= maxStarNum) { NGUITools.SetActive(wipePanel, true); NGUITools.SetActive(wipeBtn0.gameObject, true); NGUITools.SetActive(wipeBtn1.gameObject, true); } } if (uiSceneAward != null) { uiSceneAward.ShowAwardInfo(sceneId, subType, grade); } m_SceneId = sceneId; Data_SceneConfig sceneCfg = SceneConfigProvider.Instance.GetSceneConfigById(m_SceneId); RoleInfo role_info = LobbyClient.Instance.CurrentRole; if (sceneCfg != null) { SetName(sceneCfg.m_SceneName); SetRecommendFight(sceneCfg.m_RecommendFighting); SetCostStatima(sceneCfg.m_CostStamina); if (lblSceneIndex != null) { lblSceneIndex.text = (1 + sceneCfg.m_Order).ToString(); } string des = sceneCfg.m_SceneDescription.Replace("[\\n]", "\n"); if (lblIntroduce1 != null) { lblIntroduce1.text = des; } if (role_info != null) { SetFightingScore((int)role_info.FightingScore); } if (lblCurStamina != null) { lblCurStamina.text = role_info.CurStamina.ToString(); } //设置掉落数据 Data_SceneDropOut dropCfg = SceneConfigProvider.Instance.GetSceneDropOutById(sceneCfg.m_DropId); if (dropCfg != null) { DFMItemIconUtils.Instance.SetItemInfo(ItemIconType.Scene_Award, lblAwardExp, DFMItemIconUtils.Instance.m_Exp, dropCfg.m_Exp); DFMItemIconUtils.Instance.SetItemInfo(ItemIconType.Scene_Award, lblAwardCoin, DFMItemIconUtils.Instance.m_Money, dropCfg.m_GoldSum); SetAwardItem(dropCfg.GetRewardItemByHeroId(role_info.HeroId), dropCfg.m_ItemCountList); } } InitWipeNum(); InitBtnName(); } catch (Exception ex) { LogicSystem.LogFromGfx("[Error]:Exception:{0}\n{1}", ex.Message, ex.StackTrace); } }
// Use this for initialization internal void Start() { UnityEngine.Application.targetFrameRate = 30; #if (UNITY_IOS || UNITY_ANDROID) && !(UNITY_EDITOR) QualitySettings.vSyncCount = 2; #endif try { if (!GameControler.IsInited) { // register to game thread ArkProfiler.RegisterOutput(LogicSystem.LogFromGfx); // register to gfx thread, output to game console ArkProfiler.RegisterOutput2(UnityEngine.Debug.Log); // register file read handler FileReaderProxy.RegisterReadFileHandler(EngineReadFileProxy, EngineFileExistsProxy); /// Unity Editor: <path_to_project_folder>/Assets /// iOS player: <path_to_player_app_bundle>/<AppName.app>/Data (this folder is read only, use Application.persistentDataPath to save data). /// Android: Normally it would point directly to the APK. The exception is if you are running a split binary build in which case it points to the the OBB instead. string dataPath = UnityEngine.Application.dataPath; /// Point to data path which have write permission string persistentDataPath = Application.persistentDataPath; /// Point to readonly data, note some platofrm like android points to compressed apk, witch cant be directory accesssed, use www. etc instead string streamingAssetsPath = UnityEngine.Application.streamingAssetsPath; /// Point to temp data path, may clean by system string tempPath = UnityEngine.Application.temporaryCachePath; LogicSystem.LogFromGfx("dataPath:{0} persistentDataPath:{1} streamingAssetsPath:{2} tempPath:{3}", dataPath, persistentDataPath, streamingAssetsPath, tempPath); Debug.Log(string.Format("dataPath:{0} persistentDataPath:{1} streamingAssetsPath:{2} tempPath:{3}", dataPath, persistentDataPath, streamingAssetsPath, tempPath)); // store log in tempPath, others to persistentDataPath #if !UNITY_EDITOR GlobalVariables.Instance.IsDevice = true; #else // if in editor, use streamingAssetsPath instead GlobalVariables.Instance.IsDevice = false; #endif #if UNITY_ANDROID || UNITY_WEBGL if (!UnityEngine.Application.isEditor) { streamingAssetsPath = persistentDataPath + "/Tables"; } #endif #if UNITY_WEBGL // init web socket before gamelogic initialize m_WebSocket = new WebGLSocket(); ArkCrossEngine.Network.WebSocketWrapper.Instance.SetInstance(m_WebSocket); #endif LogSystem.OnOutput2 = (Log_Type type, string msg) => { #if DEBUG if (Log_Type.LT_Error == type) { UnityEngine.Debug.LogError(msg); } else if (Log_Type.LT_Info != type) { UnityEngine.Debug.LogWarning(msg); } #endif }; GameControler.Init(tempPath, streamingAssetsPath); NormLog.Instance.Init(); NormLog.Instance.Record(GameEventCode.GameStart); LogicSystem.LogFromGfx("game log saved to: {0}", tempPath); } // try preload all skills used by npc in spec scene, also character LogicSystem.OnAfterLoadScene += AfterLoadScene; } catch (Exception ex) { LogicSystem.LogErrorFromGfx("GameLogic.Start throw exception:{0}\n{1}", ex.Message, ex.StackTrace); Debug.Log(string.Format("GameLogic.Start throw exception:{0}\n{1}", ex.Message, ex.StackTrace)); } }
internal void LateUpdate() { try { if (null == UnityEngine.Camera.main || !UnityEngine.Camera.main.enabled) { m_CameraTransform = null; return; } if (!m_IsShaking && ArkCrossEngine.LobbyClient.Instance.CurrentRole != null) { if (!m_CameraSlipping && !UICamera.isOverUI) { TraceFingers(); } // Auto rotation // In free camera mode, check if camera need to slip in or out. if (!m_CameraSlipping) { // Begin slip camera in. if (m_CurDistance < m_SlipInDistance && !m_InWatchMode) { // Init slipping in. m_CameraSlipping = true; m_CameraSlippingIn = true; UnityEngine.Vector3 playerBackDir = -m_Target.forward; UnityEngine.Quaternion destRotation = UnityEngine.Quaternion.LookRotation(playerBackDir); m_SlipDestYawAngle = destRotation.eulerAngles.y; float slipDeltaYawAngle = 0.0f; if (m_SlipDestYawAngle > m_CameraTransform.eulerAngles.y) { if (m_SlipDestYawAngle - m_CameraTransform.eulerAngles.y < 180.0f) { slipDeltaYawAngle = m_SlipDestYawAngle - m_CameraTransform.eulerAngles.y; } else { slipDeltaYawAngle = 360.0f - (m_SlipDestYawAngle - m_CameraTransform.eulerAngles.y); } } else { if (m_CameraTransform.eulerAngles.y - m_SlipDestYawAngle < 180.0f) { slipDeltaYawAngle = m_CameraTransform.eulerAngles.y - m_SlipDestYawAngle; } else { slipDeltaYawAngle = 360.0f - (m_CameraTransform.eulerAngles.y - m_SlipDestYawAngle); } } m_SlipYawSpeed = slipDeltaYawAngle / m_SlipTime; if (m_SlipYawSpeed < 1.0f) { m_SlipYawSpeed = 1.0f; } // m_SlipDestRollAngle = destRotation.eulerAngles.x < m_MinCameraAngle ? m_MinCameraAngle : destRotation.eulerAngles.x; float slipDeltaRollAngle = UnityEngine.Mathf.Abs(m_SlipDestRollAngle - m_CameraTransform.eulerAngles.x); m_SlipRollSpeed = slipDeltaRollAngle / m_SlipTime; // m_SlipDestDistance = m_MinDistance; float slipDeltaDistance = m_CurDistance - m_SlipDestDistance; m_SlipZoomSpeed = slipDeltaDistance / m_SlipTime; // m_SlipOriginalYaw = m_CameraTransform.eulerAngles.y; m_SlipOriginalRoll = m_CameraTransform.eulerAngles.x; m_SlipOriginalDistance = m_SlipInDistance + 0.5f; } else if (m_CurDistance >= m_SlipOutDistance && m_InWatchMode) { // Init slipping out. m_CameraSlipping = true; m_SlipDestYawAngle = m_SlipOriginalYaw; float slipDeltaYawAngle = 0.0f; if (m_SlipDestYawAngle > m_CameraTransform.eulerAngles.y) { if (m_SlipDestYawAngle - m_CameraTransform.eulerAngles.y < 180.0f) { slipDeltaYawAngle = m_SlipDestYawAngle - m_CameraTransform.eulerAngles.y; } else { slipDeltaYawAngle = 360.0f - (m_SlipDestYawAngle - m_CameraTransform.eulerAngles.y); } } else { if (m_CameraTransform.eulerAngles.y - m_SlipDestYawAngle < 180.0f) { slipDeltaYawAngle = m_CameraTransform.eulerAngles.y - m_SlipDestYawAngle; } else { slipDeltaYawAngle = 360.0f - (m_CameraTransform.eulerAngles.y - m_SlipDestYawAngle); } } m_SlipYawSpeed = slipDeltaYawAngle / m_SlipTime; if (m_SlipYawSpeed < 1.0f) { m_SlipYawSpeed = 1.0f; } m_SlipDestRollAngle = m_SlipOriginalRoll; float slipDeltaRollAngle = UnityEngine.Mathf.Abs(m_SlipDestRollAngle - m_CameraTransform.eulerAngles.x); m_SlipRollSpeed = slipDeltaRollAngle / m_SlipTime; m_SlipDestDistance = m_SlipOriginalDistance; float slipDeltaDistance = m_SlipDestDistance - m_CurDistance; m_SlipZoomSpeed = slipDeltaDistance / m_SlipTime; } } // Unlock watch mode in battle scene. if (WorldSystem.Instance.IsPvpScene() || WorldSystem.Instance.IsPveScene() || WorldSystem.Instance.IsPvapScene() || WorldSystem.Instance.IsMultiPveScene()) { m_CameraSlipping = false; m_CameraSlippingIn = false; m_InWatchMode = false; if (!m_IsInBattleScene) { m_IsInBattleScene = true; m_CurDistance = m_MaxDistance; } } else { m_IsInBattleScene = false; } if (m_CameraSlipping) { TouchManager.Instance.joystickEnable = false; bool yawFinished = false; if (m_SlipDestYawAngle > m_CameraTransform.eulerAngles.y) { if (m_SlipDestYawAngle - m_CameraTransform.eulerAngles.y < 180.0f) { m_FixedYaw = m_CameraTransform.eulerAngles.y + m_SlipYawSpeed * Time.deltaTime; if (m_FixedYaw > m_SlipDestYawAngle) { m_FixedYaw = m_SlipDestYawAngle; yawFinished = true; } } else { m_FixedYaw = m_CameraTransform.eulerAngles.y - m_SlipYawSpeed * Time.deltaTime; if (m_FixedYaw + 360.0f < m_SlipDestYawAngle) { m_FixedYaw = m_SlipDestYawAngle - 360.0f; yawFinished = true; } } } else { if (m_CameraTransform.eulerAngles.y - m_SlipDestYawAngle < 180.0f) { m_FixedYaw = m_CameraTransform.eulerAngles.y - m_SlipYawSpeed * Time.deltaTime; if (m_FixedYaw < m_SlipDestYawAngle) { m_FixedYaw = m_SlipDestYawAngle; yawFinished = true; } } else { m_FixedYaw = m_CameraTransform.eulerAngles.y + m_SlipYawSpeed * Time.deltaTime; if (m_FixedYaw > 360.0f + m_SlipDestYawAngle) { m_FixedYaw = 360.0f + m_SlipDestYawAngle; yawFinished = true; } } } bool rollFinished = false; if (UnityEngine.Mathf.Abs(m_SlipDestRollAngle - m_CameraTransform.eulerAngles.x) > 1.0f) { if (m_SlipDestRollAngle > m_CameraTransform.eulerAngles.x) { m_FixedRoll = m_CameraTransform.eulerAngles.x + m_SlipRollSpeed * Time.deltaTime; } else { m_FixedRoll = m_CameraTransform.eulerAngles.x - m_SlipRollSpeed * Time.deltaTime; } } else { rollFinished = true; } bool zoomFinished = false; if (m_CameraSlippingIn) { m_CurDistance -= m_SlipZoomSpeed * Time.deltaTime; if (m_CurDistance <= m_SlipDestDistance) { m_CurDistance = m_SlipDestDistance; zoomFinished = true; } } else { m_CurDistance += m_SlipZoomSpeed * Time.deltaTime; if (m_CurDistance >= m_SlipDestDistance) { m_CurDistance = m_SlipDestDistance; zoomFinished = true; } } if (yawFinished && rollFinished && zoomFinished) { m_CameraSlipping = false; if (m_CameraSlippingIn) { m_CameraSlippingIn = false; m_InWatchMode = true; } else { m_InWatchMode = false; TouchManager.Instance.joystickEnable = true; } } } // End Auto rotation Apply(); } } catch (System.Exception ex) { LogicSystem.LogFromGfx("MainCamera.LateUpdate throw exception {0}\n{1}", ex.Message, ex.StackTrace); } }