示例#1
0
        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));
        }
示例#2
0
            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);
                    }
                }
            }
示例#3
0
 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);
        }
示例#5
0
        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);
        }