private void GetDefaultRotateInfo(int _nCamp, out int _nAngle, out int _nXOffset, out int _nYOffset) { // 获取小地图信息 SMinimapInfo sInfo = new SMinimapInfo(); if (GameLogicAPI.getMinimapInfo(this.mMapID, ref sInfo) == false) { _nAngle = _nXOffset = _nYOffset = 0; return; } string[] strRotation = ((string)(sInfo.szDefaultRotation)).Split(';'); for (int idx = 0; idx + 1 < strRotation.Length; idx = idx + 4) { int nCamp = Convert.ToInt32(strRotation[idx]); if (_nCamp == nCamp) { _nAngle = Convert.ToInt32(strRotation[idx + 1]); _nXOffset = Convert.ToInt32(strRotation[idx + 2]); _nYOffset = Convert.ToInt32(strRotation[idx + 3]); return; } } _nAngle = _nXOffset = _nYOffset = 0; return; }
static public bool getMinimapInfo(int nMapID, ref SMinimapInfo data) { IntPtr ptr = _getMinimapInfo(nMapID); if ((int)ptr == 0) { Trace.LogError("getMinimapInfo(" + nMapID + "), failed"); return(false); } data = IntPtrHelper.toData <SMinimapInfo>(ptr); return(true); }
public void Init(int nMapID) { mMapID = nMapID; // 获取小地图信息 SMinimapInfo sInfo = new SMinimapInfo(); if (GameLogicAPI.getMinimapInfo(this.mMapID, ref sInfo) == false) { Trace.LogError("OnRegisterMinimap failed, !GameLogicAPI.getMinimapInfo"); return; } // AS初始化小地图--优先级最高 MyInvokeQ._Invoke("MinimapInit", sInfo.szDarkBg, sInfo.szLightBg, sInfo.szBaseMap, sInfo.fLeft, sInfo.fRight, sInfo.fTop, sInfo.fBottom); SceneRect = new Rect(sInfo.fLeft, sInfo.fTop, Math.Abs(sInfo.fRight - sInfo.fLeft), Math.Abs(sInfo.fBottom - sInfo.fTop)); // 创建静态打点 SMinimapStaticIcon staticIcon = new SMinimapStaticIcon(); int nFromIndex = -1; while (GameLogicAPI.getNextMinimapStaticIcon(this.mMapID, nFromIndex, ref staticIcon) == true) { if (staticIcon.nAutoCreate != 0) { CreateStaticObj(staticIcon.nIndex); } nFromIndex = staticIcon.nIndex; } // 旋转小地图 if (this.mMapID != -1 && this.mainHeroCamp != -1) { int nDefalutAngel, nXOffset, nYOffset = 0; GetDefaultRotateInfo(mainHeroCamp, out nDefalutAngel, out nXOffset, out nYOffset); MyInvokeQ._Invoke("RotateMinimap", nDefalutAngel, nXOffset, nYOffset); } }
private int GetGodEyeRotateAngle(int nCamp) { // 获取小地图信息 SMinimapInfo sInfo = new SMinimapInfo(); if (GameLogicAPI.getMinimapInfo(this.mMapID, ref sInfo) == false) { return(0); } string[] strRotation = ((string)(sInfo.szDefaultRotation)).Split(';'); for (int idx = 0; idx + 1 < strRotation.Length; idx = idx + 4) { int _nCamp = Convert.ToInt32(strRotation[idx]); if (_nCamp == nCamp) { return(Convert.ToInt32(strRotation[idx + 1]) + sInfo.nOriRotation); } } return(0); }
protected bool GetSceneAngleY(ref float result) { SMinimapInfo m_sCurMinimapInfo = new SMinimapInfo(); int nAngle = 270; if (GameLogicAPI.getMinimapInfo(SceneManager.Instance.m_curMapID, ref m_sCurMinimapInfo)) { string[] strRotation = ((string)(m_sCurMinimapInfo.szDefaultRotation)).Split(';'); for (int idx = 0; idx + 1 < strRotation.Length; idx = idx + 4) { int nCamp = Convert.ToInt32(strRotation[idx]); if (EntityFactory.MainHeroView.createinfo.byCamp == nCamp) { nAngle = Convert.ToInt32(strRotation[idx + 1]) + (360 - m_sCurMinimapInfo.nOriRotation); break; } } Vector3 godDir = new Vector3(0, 0, -1); result = (float)nAngle; return(true); } return(false); }