void TraverseChildren(Transform target)
    {
        if (target.GetComponent <vDamageReceiver>())
        {
            vDamageReceiver original = target.GetComponent <vDamageReceiver>();

            PUN_DamageReceiver pun = target.gameObject.AddComponent <PUN_DamageReceiver>();
            pun.damageMultiplier   = target.GetComponent <vDamageReceiver>().damageMultiplier;
            pun.overrideReactionID = target.GetComponent <vDamageReceiver>().overrideReactionID;

            DestroyImmediate(original);
        }
        foreach (Transform child in target)
        {
            TraverseChildren(child);
        }
    }
    void AssignDamageReceivers(GameObject prefab)
    {
        TraverseChildren(prefab.transform.root);
        foreach (Transform child in prefab.transform.root)
        {
            if (child.GetComponent <vDamageReceiver>())
            {
                vDamageReceiver original = child.GetComponent <vDamageReceiver>();

                PUN_DamageReceiver pun = child.gameObject.AddComponent <PUN_DamageReceiver>();
                pun.damageMultiplier   = child.GetComponent <vDamageReceiver>().damageMultiplier;
                pun.overrideReactionID = child.GetComponent <vDamageReceiver>().overrideReactionID;

                DestroyImmediate(original);
            }
        }
    }