UnityでGoogle Cardboardに対応したアプリを開発する場合、描画部分はDurovis DiveのSDKを使えばよいのですが、Durovis Diveにはマグネットボタンが存在しないため、マグネットボタンへの対応は自分で行う必要があります。

マグネットボタンの判定には、Input.compass.rawvectorを使います。rawvectorにどのような値が入るかは、Androidアプリの内蔵センサーで計測することができます。

CardboardにNexus5を入れた状態で、マグネットボタンを押していない場合、左側面が受ける磁気強度は100マイクロテスラ程度ですが、マグネットボタンを押すと、500マイクロテスラ程度の大きな値になります。従って、以下のように、磁気強度が大きくなった点を検出すれば、ボタンが押されたかを検出することができます。

Vector3 now=Input.compass.rawVector;
int thre=250;
if(Mathf.Abs(prev.x)<thre && Mathf.Abs(now.x)>=thre){
Debug.Log("Hit");
}
prev=now;


磁気強度は磁石によると思うので、しきい値には、ある程度のマージンを設定しておく必要があります。