Exemplo n.º 1
0
    /// <summary>
    /// 移动建筑物到指定位置
    /// </summary>
    /// <param name="x"></param>
    /// <param name="y"></param>
    public void DraggingBuildingTo(int x, int y)
    {
        //REMARK 一个建筑格子占2个小格子
        if (x % 2 == 1)
        {
            x -= 1;
        }
        if (y % 2 == 1)
        {
            y -= 1;
        }
        if (currentBuilding.GetTilePos().x == x && currentBuilding.GetTilePos().y == y)
        {
            return;
        }
        if (!draged)
        {
            draged = true;
            EventDispather.DispatherEvent(GameEvents.BEGIN_DRAG_BUILDING);
        }
        currentBuilding.SetTilePosition(new TilePoint(x, y));
        currentBuilding.view.transform.position = currentBuilding.GetRenderPosition();
        var pos = IsoHelper.GridToPosition(x, y);

        buildableView.gameObject.SetActive(true);
        buildableView.transform.position = pos;
        IsoHelper.MoveAlongCamera(buildableView.transform, 5f);
        buildArrow.transform.position = pos;
//        IsoHelper.MoveAlongCamera(buildArrow.transform,-1f);
        buildConfirm.transform.position = pos;
        IsoHelper.MoveAlongCamera(buildConfirm.transform, -1f);

        //  是否可以建造
        buildableView.SetBuildable(IsoMap.Instance.CanPlaceBuilding(x, y, currentBuilding.width, currentBuilding.height));
    }
Exemplo n.º 2
0
 public void SelectBuilding(TileEntity building) //临时去掉占地数据,记录原始位置,添加选择状态
 {
     building.OnSelected();
     oldX            = building.GetTilePos().x;
     oldY            = building.GetTilePos().y;
     currentBuilding = building;
     IsoMap.Instance.BeginMoveEntity(building);
     buildableView.Init(building.width);
     buildArrow.Init(building.width);
     buildArrow.gameObject.SetActive(true);
     buildArrow.transform.position = IsoHelper.GridToPosition(building.GetTilePos());
 }
Exemplo n.º 3
0
    public void Init(int size)
    {
        foreach (Transform child in transform)
        {
            Destroy(child.gameObject);
        }
        for (int i = 0; i < size; i++)
        {
            for (int j = 0; j < size; j++)
            {
                var tile = Instantiate(smallTilePrefab, IsoHelper.GridToPosition(i, j), Quaternion.identity) as GameObject;

                tile.transform.position = IsoHelper.GridToPosition(i, j);
                var localPos = tile.transform.localPosition;
                tile.transform.parent        = transform;
                tile.transform.localPosition = localPos;

                IsoHelper.FaceToWorldCamera(tile.transform);
            }
        }
    }