예제 #1
0
    private void PreviewBuild()
    {
        if (m_SelectedBuild != null && !UIManager.Singleton.CheckCursorOnUI())
        {
            Ray        mouseRay = Camera.main.ScreenPointToRay(mousePosition);
            RaycastHit hitInfo;

            if (Physics.Raycast(mouseRay, out hitInfo, 999f, m_PreviewLayers) && !hitInfo.transform.gameObject.CompareTag("Collect"))
            {
                targetedConstructTerrain = hitInfo.transform.gameObject.GetComponentInParent <ConstructableTerrain>();

                if (targetedConstructTerrain != null)
                {
                    if (!targetedConstructTerrain.CheckNearTile(actualPreviewBuilding.GetComponent <Building>().buildingDirection, m_SelectedBuild.tileSize))
                    {
                        ChangeAllPreviewMatColor(m_PreviewColorError);
                    }
                    else
                    {
                        ChangeAllPreviewMatColor(m_PreviewColor);
                    }
                }
                else
                {
                    ChangeAllPreviewMatColor(m_PreviewColorError);
                }

                actualPreviewBuilding.transform.position = hitInfo.transform.position;
                actualPreviewBuilding.SetActive(true);
            }
            else
            {
                targetedConstructTerrain = null;
                actualPreviewBuilding.SetActive(false);
            }
        }
        else if (UIManager.Singleton.CheckCursorOnUI() && m_SelectedBuild != null)
        {
            actualPreviewBuilding.SetActive(false);
        }
    }
예제 #2
0
    public void RemoveConnectedTile(Direction tileDir)
    {
        switch (tileDir)
        {
        case Direction.Up:
            connectedTilesUp = null;
            break;

        case Direction.Down:
            connectedTilesDown = null;
            break;

        case Direction.Left:
            connectedTilesLeft = null;
            break;

        case Direction.Right:
            connectedTilesRight = null;
            break;
        }
    }
예제 #3
0
    public void AddConnectedTile(ConstructableTerrain connected, Direction tileDir)
    {
        switch (tileDir)
        {
        case Direction.Up:
            connectedTilesUp = connected;
            break;

        case Direction.Down:
            connectedTilesDown = connected;
            break;

        case Direction.Left:
            connectedTilesLeft = connected;
            break;

        case Direction.Right:
            connectedTilesRight = connected;
            break;
        }
    }
예제 #4
0
 private void OnTriggerEnter(Collider other)
 {
     connectedTile = other.gameObject.GetComponentInParent <ConstructableTerrain>();
     associateTile.AddConnectedTile(connectedTile, dir);
 }
예제 #5
0
 private void Start()
 {
     associateTile = GetComponentInParent <ConstructableTerrain>();
 }