コード例 #1
0
ファイル: WorldCamera.cs プロジェクト: yening520/SLGGame
 public WorldCamera(Transform trans) : base(trans)
 {
     m_Camera   = m_GameObject.GetComponent <Camera>();
     m_Movement = m_GameObject.AddComponent <Movement>();
     m_Transform.eulerAngles   = GlobalDefines.WORLD_CAMERA_EULER;
     m_Camera.orthographicSize = GlobalDefines.WORLD_CAMERA_SIZE;
     m_Map        = SLG.SLGGame.Instance.MapData;
     m_MaxMapRect = m_Map.GetWorldSpaceRect();
 }
コード例 #2
0
        public void InitWithMapData(GridMap2D MapData)
        {
            this.MapData = MapData;
            Vector3 scale = new Vector3(MapData.m_colCount * MapData.m_cellWidth, MapData.m_rowCount * MapData.m_cellHeight, 1.0f);

            m_Grid.localScale = scale;
            m_Grid.position   = MapData.m_offsetInWorldSapce;
            m_GridMat.SetTextureScale("_MainTex", new Vector2(MapData.m_colCount, MapData.m_rowCount));
        }
コード例 #3
0
        public override void OnInitialize(IResourceLoader loader, params object[] pars)
        {
            m_MapData = pars[0] as GridMap2D;
            m_MapData.StateCanMove = (x, y) =>
            {
                if (m_MapData.HasState(x, y, GlobalDefines.CELL_STATE_CHAR))
                {
                    return(false);
                }
                return(true);
            };
            m_RangeViewDic = new Dictionary <int, ActionRangeView>();
            int cellCount = m_MapData.m_colCount * m_MapData.m_rowCount;

            m_MapCells = new SLGMapCellInfo[cellCount];
            for (int i = 0; i < cellCount; ++i)
            {
                m_MapCells[i] = new SLGMapCellInfo();
            }
            m_RangeCellsParent = new GameObject("range").transform;
        }
コード例 #4
0
        public void Create(ActionRangeData data, Transform parent)
        {
            GridMap2D map = SLG.SLGGame.Instance.MapData;

            foreach (ActionCellData cellData in data.MovingList)
            {
                ActionRangeCellObj obj = new ActionRangeCellObj(parent);
                obj.SetMoving();
                Vector3 pos = map.CellToWorldSpacePos(cellData.X, cellData.Y);
                obj.SetWorldPos(pos);
                m_ObjList.Add(obj);
            }

            foreach (ActionCellData cellData in data.AttackingList)
            {
                ActionRangeCellObj obj = new ActionRangeCellObj(parent);
                obj.SetAttacking();
                Vector3 pos = map.CellToWorldSpacePos(cellData.X, cellData.Y);
                obj.SetWorldPos(pos);
                m_ObjList.Add(obj);
            }
        }
コード例 #5
0
    public override void OnInspectorGUI()
    {
        map = serializedObject.targetObject as GridMap2D;
        map.m_GridCustom         = EditorGUILayout.ObjectField("自定义网格类型", map.m_GridCustom, typeof(GridCustom), true) as GridCustom;
        map.m_rowCount           = EditorGUILayout.IntField("行数", map.m_rowCount);
        map.m_colCount           = EditorGUILayout.IntField("列数", map.m_colCount);
        map.m_cellWidth          = EditorGUILayout.FloatField("单元格宽度", map.m_cellWidth);
        map.m_cellHeight         = EditorGUILayout.FloatField("单元格高度", map.m_cellHeight);
        map.m_offsetInWorldSapce = EditorGUILayout.Vector3Field("世界空间偏移", map.m_offsetInWorldSapce);
        map.Fit();
        EditorGUILayout.LabelField("总宽度", map.Length.ToString());
        EditorGUILayout.LabelField("总高度", map.Height.ToString());

        m_from = EditorGUILayout.Vector2Field("从", m_from);
        m_to   = EditorGUILayout.Vector2Field("到", m_to);

        if (GUILayout.Button("寻路"))
        {
            FindPath(false);
        }
        if (GUILayout.Button("寻路(忽略对角)"))
        {
            FindPath(true);
        }

        if (m_curSelectedPoint != IPoint.Unavailable)
        {
            ECellType type = (ECellType)map.GetType(m_curSelectedPoint.X, m_curSelectedPoint.Y);
            ECellType s    = (ECellType)EditorGUILayout.EnumPopup("单元格类型", type);
            map.SetType(m_curSelectedPoint.X, m_curSelectedPoint.Y, (int)s);
        }

        if (m_curOverCellPos != null)
        {
            EditorGUILayout.LabelField("当前选中", m_curSelectedPoint.ToString());
        }

        EditorUtility.SetDirty(map);
    }
コード例 #6
0
        public void Load(GridMap2D mapData, Transform rootTf)
        {
            m_RootTf  = rootTf;
            m_MapData = mapData;

            m_TurnAgent        = new TurnAgent();
            m_TurnAgent.Cursor = new GameCursor(m_RootTf);

            m_MapSystem = GameManager.Instance.CreateSystem <SLGMapSystem>(m_MapData);

            m_TurnAgent.Arrow = new GameArrow(m_RootTf);

            m_TurnAgent.WorldCamera = new WorldCamera(GameObject.Find("GameLoop/Camera").transform);

            GameManager.Instance.AddInputEvent(OnInputMsg, 0);

            m_CharacterSystem = GameManager.Instance.CreateSystem <SLGCharacterSystem>(m_RootTf);
            m_TurnSystem      = GameManager.Instance.CreateSystem <SLGTurnSystem>(m_TurnAgent);

            m_TurnAgent.TurnSystem = m_TurnSystem;

            Character ch = CS_CreateCharacterAtPoint(ECharacterRelation.OwnSide, 1);

            ch.SetCellPos(new IPoint(12, 2));

            Character ch2 = CS_CreateCharacterAtPoint(ECharacterRelation.OwnSide, 2);

            ch2.SetCellPos(new IPoint(14, 2));

            m_TurnAgent.Cursor_SetCellPos(ch.Point);
            m_TurnAgent.WorldCamera_FollowCellPos(ch.Point);

            GameManager.Instance.UIMgr.OpenUI <GameHud>();

            m_TurnSystem.SwitchTurn(Common.ETurnType.OwnSide);
        }
コード例 #7
0
ファイル: GameCursor.cs プロジェクト: yening520/SLGGame
 public GameCursor(Transform parent) : base(ResourceLoader.COMP_PATH, "Cursor", parent)
 {
     m_Map      = SLG.SLGGame.Instance.MapData;
     m_Movement = m_GameObject.AddComponent <Movement>();
 }