public static Vector3 Set3DUIWorldPos_ByScreenPoint(ref Vector3 worldPos, bool bMiniMap, out float finalScreenX, out float finalScreenY) { finalScreenX = (finalScreenY = 0f); MinimapSys theMinimapSys = Singleton <CBattleSystem> .GetInstance().TheMinimapSys; if (theMinimapSys == null) { return(Vector3.zero); } Vector2 vector = (!bMiniMap) ? Singleton <CBattleSystem> .get_instance().world_UI_Factor_Big : Singleton <CBattleSystem> .get_instance().world_UI_Factor_Small; Vector2 vector2 = new Vector2(worldPos.x * vector.x, worldPos.z * vector.y); vector2.x *= Sprite3D.Ratio(); vector2.y *= Sprite3D.Ratio(); Vector2 vector3 = (!bMiniMap) ? theMinimapSys.GetBMFianlScreenPos() : theMinimapSys.GetMMFianlScreenPos(); vector2.x += vector3.x; vector2.y += vector3.y; Vector3 position = new Vector3(vector2.x, vector2.y, (float)MiniMapSysUT.UI3D_Depth); Camera currentCamera = Singleton <Camera_UI3D> .GetInstance().GetCurrentCamera(); if (currentCamera == null) { return(Vector3.zero); } finalScreenX = position.x; finalScreenY = position.y; return(currentCamera.ScreenToWorldPoint(position)); }
private void _updateNodePosition(GameObject node, PoolObjHandle <ActorRoot> actorRoot, bool bSmallMap) { if (!actorRoot) { return; } if (node != null) { MinimapSys theMinimapSys = Singleton <CBattleSystem> .GetInstance().TheMinimapSys; if (theMinimapSys == null) { return; } Vector3 vector = (Vector3)actorRoot.handle.location; Vector2 vector2 = bSmallMap ? theMinimapSys.GetMMFianlScreenPos() : theMinimapSys.GetBMFianlScreenPos(); Vector2 vector3 = bSmallMap ? theMinimapSys.mmFinalScreenSize : theMinimapSys.bmFinalScreenSize; float x; float y; node.transform.position = MiniMapSysUT.Set3DUIWorldPos_ByScreenPoint(ref vector, bSmallMap, out x, out y); if (!this.IsRectInside(x, y, vector2.x, vector2.y, vector3.x, vector3.y)) { this.SetUpdateAble(false); } } }
private void OnSpawnSoldier(ref SpawnSoldierParam inParam) { if (inParam.SourceRegion != null && inParam.SourceRegion.IsInEmergency && inParam.SourceRegion.RouteType == RES_SOLDIER_ROUTE_TYPE.RES_SOLDIER_ROUTE_MID) { MinimapSys theMinimapSys = Singleton <CBattleSystem> .instance.TheMinimapSys; if (theMinimapSys == null) { return; } Vector2 localPosition = new Vector2(0f, 0f); Quaternion localRotation = Quaternion.identity; float num = 13f; if (inParam.SourceRegion.IsMyCamp()) { localPosition = new Vector2(theMinimapSys.GetMMFianlScreenPos().x - theMinimapSys.mmFinalScreenSize.x / 2f + num, theMinimapSys.GetMMFianlScreenPos().y - theMinimapSys.mmFinalScreenSize.y / 2f + num); } else { localPosition = new Vector2(theMinimapSys.GetMMFianlScreenPos().x + theMinimapSys.mmFinalScreenSize.x / 2f - num, theMinimapSys.GetMMFianlScreenPos().y + theMinimapSys.mmFinalScreenSize.y / 2f - num); localRotation = Quaternion.Euler(0f, 0f, 180f); } this.ExecCommand(6, localPosition, localRotation); } }
public static Vector2 CalcScreenPosInMapByWorldPos(ref Vector3 worldPos, bool bMiniMap) { MinimapSys theMinimapSys = Singleton <CBattleSystem> .GetInstance().TheMinimapSys; if (theMinimapSys == null) { return(Vector3.zero); } Vector2 vector = bMiniMap ? Singleton <CBattleSystem> .instance.world_UI_Factor_Small : Singleton <CBattleSystem> .instance.world_UI_Factor_Big; Vector2 result = new Vector2(worldPos.x * vector.x, worldPos.z * vector.y); result.x *= Sprite3D.Ratio(); result.y *= Sprite3D.Ratio(); Vector2 vector2 = bMiniMap ? theMinimapSys.GetMMFianlScreenPos() : theMinimapSys.GetBMFianlScreenPos(); result.x += vector2.x; result.y += vector2.y; return(result); }
public bool CheckSignalPositionValid(Vector2 sigScreenPos) { MinimapSys theMinimapSys = Singleton <CBattleSystem> .instance.TheMinimapSys; return(theMinimapSys != null && sigScreenPos.x >= theMinimapSys.GetMMFianlScreenPos().x - theMinimapSys.mmFinalScreenSize.x / 2f && sigScreenPos.x <= theMinimapSys.GetMMFianlScreenPos().x + theMinimapSys.mmFinalScreenSize.x / 2f && sigScreenPos.y >= theMinimapSys.GetMMFianlScreenPos().y - theMinimapSys.mmFinalScreenSize.y / 2f && sigScreenPos.y <= theMinimapSys.GetMMFianlScreenPos().y + theMinimapSys.mmFinalScreenSize.y / 2f); }