Henry Cavill reveals he lost out on James Bond and 'Twilight' roles: 'It helps me get better'

Henry Cavill made a name for himself playing DC comics superhero Superman in three blockbuster films, but before landing the part of the Kryptonian alien he lost out on three major roles.

In an interview with Men's Health magazine for its December issue, the 36-year-old British actor opened up about struggling to get work earlier on in his acting career.

One missed opportunity that still irks him to this day is the coveted James Bond role.

'THE WITCHER' TEASER SHOWS HENRY CAVILL'S DRASTIC NEW LOOK AS GERALT OF RIVIA

“I probably could have prepared better,” Cavill admitted of his screen test for 007 in 2006’s "Casino Royale."

“I remember the director, Martin Campbell, saying, ‘Looking a little chubby there, Henry.’ I didn’t know how to train or diet. And I’m glad Martin said something, because I respond well to truth. It helps me get better.”

'SUPERMAN' STAR HENRY CAVILL ADMITS ONE REGRET ON PLAYING THE 'MAN OF STEEL'

Cavill said the test was a reenactment of a Sean Connery scene during which he only wore a towel. He lost out to Daniel Craig, who accepted the part and just wrapped shooting his fifth and final Bond film.

The actor also confessed he missed out on two more major lead roles in "Tristan + Isolde" and "Twilight."

Henry Cavill as Superman in "Man of Steel."

Henry Cavill as Superman in "Man of Steel." (AP Photo/Warner Bros. Pictures, Clay Enos, File)

James Franco got the role in 2006 film adaptation of the British love story and Robert Pattinson landed the part as Edward Cullen in the 2009 vampire drama based on the bestselling book series.

“I wasn’t ecstatic about not getting these things,” Cavill confessed. “But I was so used to disappointment from the acting business, and also from boarding school. ‘No, you’re not good enough’ — that wasn’t anything new to me.”

HENRY CAVILL DEBUNKS DEATH HOAX AFTER WIKIPEDIA LISTS HIM DEAD

Now, he stars as Geralt in the upcoming Netflix series "The Witcher" for which he beat out 207 other actors. The show's producer, Schmidt Hissrich, told the magazine she met with Cavill early on -- before the script was even written -- and couldn't get him out of her head for the part.

“But all the time I was writing, I kept hearing Henry’s voice in my head,” she said. “In the books, Geralt is fearsome, but he also has this amazing dry wit. We needed someone to play both ends of the spectrum, someone who could see all the trauma of the world he’s in but could also step back and roll his eyes once in a while.”

And on whether or not he'll don the cape again as Superman, Cavill hints, “I’ve not given up the role."

CLICK HERE TO GET THE FOX NEWS APP

“There’s a lot I have to give for Superman yet. A lot of storytelling to do. A lot of real, true depths to the honesty of the character I want to get into. I want to reflect the comic books. That’s important to me. There’s a lot of justice to be done for Superman. The status is: You’ll see," he added.