デフォルトではGameObjectに同じスクリプトを2個以上つけてもなんの問題もなく動いてしまうので、
非常に見つけづらいバグのもとになってしまいます。
スクリプトのクラス定義の前の行に DisallowMultipleComponent をつけるだけです。
[DisallowMultipleComponent] public class DuplicateObject : MonoBehaviour { void Start() { } void Update() { } }
重複してつけようとすると、下のようなダイアログで注意してくれます。