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); } } }