// This overload is used by the Build & Run menu item & hot key - prompt for location only if the configured
// output location is not valid.
static void BuildPlayerAndRun()
{
var buildTarget = EditorUserBuildSettingsUtils.CalculateSelectedBuildTarget();
var lastBuildLocation = EditorUserBuildSettings.GetBuildLocation(buildTarget);
bool buildLocationIsValid = BuildLocationIsValid(lastBuildLocation);
if (buildLocationIsValid && (buildTarget == BuildTarget.StandaloneWindows || buildTarget == BuildTarget.StandaloneWindows64))
{
// Case 1208041: Windows Standalone .exe name depends on productName player setting
var newBuildLocation = Path.Combine(Path.GetDirectoryName(lastBuildLocation), Paths.MakeValidFileName(PlayerSettings.productName) + ".exe").Replace(Path.DirectorySeparatorChar, '/');
EditorUserBuildSettings.SetBuildLocation(buildTarget, newBuildLocation);
}
BuildPlayerAndRun(!buildLocationIsValid);
}