Is there a cleaner way to set all the properties when declaring a new object?

Here’s a script I’m writing:

void generateLevel(){
		MatchManager.levelInfo generatedLevel;
		generatedLevel.baseWidth = 5;
		generatedLevel.tableWidth = 32;
		generatedLevel.tableHeight = 20;
		generatedLevel.playerDefenseZoneWidth = generatedLevel.tableWidth / 4;
		generatedLevel.AIDefenseZoneWidth = generatedLevel.tableWidth / 4;
		generatedLevel.numberOfPlayerBalls = 0;
		generatedLevel.numberOfAIBalls = 0;
		generatedLevel.numberOfPlayerBallsInDeck = 0;
		generatedLevel.numberOfAIBallsInDeck = 0;
		generatedLevel.numberOfBalls = 0;
		generatedLevel.basePlayerOwnership = 0;
		generatedLevel.baseAIOwnership = 0;
		//
		//

…how do I organize this better?

I don’t know what is your levelInfo and how you assign generated level , but this is the pattern I use :

struct WeaponTransform
{
    public Vector3 position;
    public Vector3 scale;
    public Vector3 rotation;
}
class A
{
private WeaponTransform m_IdleWeaponTransform;
void Initialize()
{
m_IdleWeaponTransform = new WeaponTransform
        {
            position = new Vector3(-0.0113f, -0.0106f, -0.1065f),
            rotation = new Vector3(0.82902f, 157.3625f, 278.6339f),
            scale = new Vector3(1, 1, 1)
        };
}
}

Thanks, I had that in mind but was just getting the syntax all wrong.