コード例 #1
0
    private GameObject InstantiateRectangleStandardTile(List <Vector2> rectangle, Transform parent)
    {
        Vector2 centerGridPosition = rectangle.Center();
        Vector2 startGridPosition  = rectangle.Lowest();
        Vector2 endGridPosition    = rectangle.Highest();

        Vector2 centerWorldPosition = LevelEditorGridHelper.GridToNodePosition(centerGridPosition);

        Vector2 startWorldPosition = LevelEditorGridHelper.GridToNodePosition(startGridPosition);
        Vector2 endWorldPosition   = LevelEditorGridHelper.GridToNodePosition(endGridPosition);
        Vector2 offset             = VectorHelper.Abs(endWorldPosition - startWorldPosition);

        float nodeSize = LevelEditorGridNodeSizeLibrary.Instance.NodeSize;

        float   width  = offset.x + nodeSize;
        float   height = offset.y + nodeSize;
        Vector2 scale  = new Vector2(width, height);

        GenerateableTileNode generatableTileNode = GenerateableTileLibrary.GetGeneratableTileNode(TileType.Standard);
        GameObject           standardTile        = Object.Instantiate(generatableTileNode.Prefab, centerWorldPosition, new Quaternion(), parent);

        standardTile.transform.localScale = scale;

        return(standardTile);
    }
コード例 #2
0
    protected override void Execute()
    {
        LevelSaveData levelSaveData = deserializedLevelSaveDataStatus.LevelSaveData;

        foreach (TileSaveData nonStandardTileSaveData in levelSaveData.NonStandardTilesSaveData)
        {
            GameObject prefab   = GenerateableTileLibrary.GetGeneratableTileNode(nonStandardTileSaveData.TileType).Prefab;
            Vector2    position = LevelEditorGridHelper.GridToNodePosition(nonStandardTileSaveData.GridPosition);
            Quaternion rotation = nonStandardTileSaveData.Rotation;

            GameObject nonStandardTile = Object.Instantiate(prefab, position, rotation);

            Vector2 size = new Vector2(LevelEditorGridNodeSizeLibrary.Instance.NodeSize, LevelEditorGridNodeSizeLibrary.Instance.NodeSize);
            nonStandardTile.transform.localScale = size;
            nonStandardTile.transform.SetParent(levelContainerStatus.LevelContainer);
        }
    }
コード例 #3
0
    protected override void Execute()
    {
        Vector2 halfTileSize = new Vector2(LevelEditorGridNodeSizeLibrary.Instance.NodeSize / 2, LevelEditorGridNodeSizeLibrary.Instance.NodeSize / 2);

        float minX = Mathf.Min(parameter.SelectionFieldStartPosition.x, parameter.SelectionFieldEndPosition.x);
        float minY = Mathf.Min(parameter.SelectionFieldStartPosition.y, parameter.SelectionFieldEndPosition.y);
        float maxX = Mathf.Max(parameter.SelectionFieldStartPosition.x, parameter.SelectionFieldEndPosition.x);
        float maxY = Mathf.Max(parameter.SelectionFieldStartPosition.y, parameter.SelectionFieldEndPosition.y);

        Vector2 bottomLeftCornerGridPosition = new Vector2(minX, minY);
        Vector2 topRightCornerGridPosition   = new Vector2(maxX, maxY);

        Vector2 bottomLeftCornerWorldPosition = LevelEditorGridHelper.GridToNodePosition(bottomLeftCornerGridPosition) - halfTileSize;
        Vector2 topRightCornerWorldPosition   = LevelEditorGridHelper.GridToNodePosition(topRightCornerGridPosition) + halfTileSize;

        BoxOverlay.Instance.UpdateBox(bottomLeftCornerWorldPosition, topRightCornerWorldPosition);
    }
コード例 #4
0
ファイル: TileGenerator.cs プロジェクト: Daniel95/Antigravity
    private static Tile GetTile(GameObject prefab, TileType tileType, Vector2 gridPosition)
    {
        if (tileType == TileType.Empty)
        {
            return(new Tile()
            {
                TileType = TileType.Empty
            });
        }

        Vector2 tilePosition = LevelEditorGridHelper.GridToNodePosition(gridPosition);

        GameObject tileGameObject = ObjectPool.Instance.GetObjectForType(prefab.name, false);

        tileGameObject.transform.position = tilePosition;
        bool   userGenerated = CheckTileTypeUserGenerated(tileType);
        string tileName      = "";

        if (!userGenerated)
        {
            tileName += "AutoGenerated Tile ";
        }
        else
        {
            tileName += "Tile ";
        }

        tileName           += tileType.ToString() + " " + gridPosition.ToString();
        tileGameObject.name = tileName;

        tileGameObject.layer = LayerMask.NameToLayer(Layers.LevelEditorTile);

        Tile tile = new Tile()
        {
            TileType      = tileType,
            GameObject    = tileGameObject,
            UserGenerated = userGenerated,
        };

        return(tile);
    }