Unity: Скрипт DestroyByContact.cs для обучающего проекта Space Shooter tutorial

Страница обучающего курса: Space Shooter tutorial
Курс написан для Unity 4.x, поэтому для Unity 5.x пришлось переписывать почти все скрипты. Кое-что я добавил свое (например поддержку игрового контроллера и «режим бога», чтобы легче было отлаживать). Режим отладки включается только чекбоксом из Unity Editor, при этом в консоль выводятся данные через Debug.Log. Помимо этого в игре реализована Пауза. Отдельное замечу, что все исправленные скрипты работают с расширенной версией урока, поэтому скорее всего не подойдут для первых уроков, где еще нет некоторых элементов типа вражеских кораблей, подвижного фона и т.п.

Скрипт DestroyByContact.cs:

using UnityEngine;
using System.Collections;

public class DestroyByContact : MonoBehaviour
{
    public GameObject explosion;
    public GameObject playerExplosion;
    public int scoreValue;
    private GameController gameController;

    void Start()
    {
        GameObject gameControllerObject = GameObject.FindWithTag("GameController");
        if (gameControllerObject != null)
        {
            gameController = gameControllerObject.GetComponent<GameController>();
        }
        if (gameController == null)
        {
            Debug.Log("Can not find 'GameController' script");
        }
    }

    void OnTriggerEnter(Collider other)
    {
        if (gameController.debugMode)
        {
            Debug.Log(other.name+"("+other.tag+"->OnTriggerEnter");
        }

        if (other.CompareTag ("Boundary") || other.CompareTag("Enemy"))
        {
            return;
        }
        if (explosion != null)
        {
            Instantiate(explosion, transform.position, transform.rotation);
        }
        if (other.CompareTag("Player") && !gameController.godMode)
        {
            Instantiate(playerExplosion, other.transform.position, other.transform.rotation);
        }
        gameController.AddScore(scoreValue);

        if (other.CompareTag("Player") && !gameController.godMode)
        {
            Destroy(other.gameObject);
            gameController.GameOver();
        }
        else if (other.CompareTag("Player") && gameController.godMode)
        {
            //Destroy(other.gameObject);
        }

        Destroy(gameObject);
        gameController.AddScore(scoreValue);
    }
}