はじめに
今回はスクリプトが変更されたときに自動でコンパイルがされないようにする方法について紹介をしたいと思います。
Auto Refresh
Preferences/Asset Pipline/Auto Refresh(Unity2021.3以前?はPreferences/General/Auto Refresh)をオフにすることで、アセットが変更されたときにアセットの自動更新を行わないようにすることができます。
デフォルトはオンです。
これを有効にすると、アセットが変更されたときに、アセットの自動更新を行います。

更新を行うためにはCtrl + R(Macならcommand + R)を押すか、メニューバーのAssets/Refreshを押します。

再生時にコンパイルを行う
調べたら以下のプロジェクトを見つけました。インストール方法はmanifest.jsonに以下を打ち込めばOKです。
"com.jfranmora.editorextensions.compile-before-play": "https://github.com/jfranmora/unity-compile-before-play.git#upm"
また中身を見てみると、以下のコードをEditor内にいれるだけで良いようですね。
using UnityEditor; namespace JfranMora.EditorExtensions { public static class CompileBeforePlay { [InitializeOnLoadMethod] public static void Initialize() { if (EditorApplication.isPlaying) return; EditorApplication.update += Update; } private static void Update() { if (EditorApplication.isPlayingOrWillChangePlaymode && !EditorApplication.isPlaying) { AssetDatabase.Refresh(); } } } }