예제 #1
0
    private void Bound()
    {
        DSTerrain terrain = terrainObj.GetComponent <DSTerrain>();
        Vector3   newPos  = new Vector3(transform.position.x, transform.position.y, transform.position.z);

        float terrainWidth     = terrain.findWidth(terrain.nverts) * 0.7f;
        float terrainHighPoint = terrain.findMaxHeight(terrain.nverts);

        // Keep the camera inside the terrain's bounds
        if (newPos.x > terrainWidth - dy)
        {
            newPos.x = terrainWidth - dy;
        }
        if (newPos.x < -terrainWidth + dy)
        {
            newPos.x = -terrainWidth + dy;
        }
        if (newPos.z > terrainWidth - dy)
        {
            newPos.z = terrainWidth - dy;
        }
        if (newPos.z < -terrainWidth + dy)
        {
            newPos.z = -terrainWidth + dy;
        }
        if (newPos.y > 3 * terrainHighPoint - dy)
        {
            newPos.y = 3 * terrainHighPoint - dy;
        }

        transform.position = newPos;
    }