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(); }
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)); }
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; }
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); } }
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); }
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); }
public GameCursor(Transform parent) : base(ResourceLoader.COMP_PATH, "Cursor", parent) { m_Map = SLG.SLGGame.Instance.MapData; m_Movement = m_GameObject.AddComponent <Movement>(); }