Unity: Добавить для объекта эффект щита

Я не знаю, как сделать «правильно», поэтому пишу просто набор инструкций. Скорее всего можно сделать все гораздо лучше и по «фэншуй».
1. Для объекта добавить дочерний объект, который будет представлять форму щита. Я добавляю сферу и называю ее «ShieldSphere».
2. Устанавливаю для нее нужный мне размер
3. Создаем новый материал, используя шейдер Shield, там же можно скачать изображения для материала. Во вложении версия для Unity 5: Shield.
4. Текстура для шейдера:

5. Эффект щита добавляем скриптом:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Shield : MonoBehaviour
{
    private float shieldTimer;

    private GameObject shieldObj;

    private bool isShielded;
    public bool Shielded
    {
        set
        {
            isShielded = value;
        }
        get
        {
            return isShielded;
        }
    }

    // Use this for initialization
    void Start()
    {
        isShielded = true;
        shieldTimer = 10f;


        shieldObj = transform.FindChild("ShieldSphere").gameObject;
        // Allow only one instance of this script
        if (shieldObj.activeSelf)
        {
            Destroy(this);
            return;
        }

    }

    // Update is called once per frame
    void Update()
    {
        if (isShielded)
        {
            StartCoroutine("ShieldEffect");
        }
        else
        {
            Destroy(this, 1.0f);
        }
    }

    IEnumerator ShieldEffect()
    {
        if (isShielded)
        {
            shieldObj.SetActive (true);
            isShielded = true;
            yield return new WaitForSeconds(shieldTimer);
            shieldObj.SetActive(false);
            isShielded = false;
        }
    }
}

6. Чтобы снизить повреждения при активном щите, добавляем в файл ShellExplosion.cs строки:

if (targetRigidbody.GetComponent() && targetRigidbody.GetComponent().Shielded)
{
  damage *= 0.5f;
}