// Start is called before the first frame update private void Start() { for (int i = 0; i < 2; i++) { var gear = CommonGear.Instantiate(transform, handleCollide); gear.transform.position = Vector3.one * (0.5f * i); _gears.Add(gear.GetComponent <CommonGear>()); } }
//TODO: Move to factory public static GameObject Instantiate(Transform parent, Action <Collision2D, CommonGear> gearCollideHandler) { var prefab = AssetDatabase.LoadAssetAtPath("Assets/Prefabs/CommonGear.prefab", typeof(GameObject)); var newGear = Instantiate(prefab, Vector3.zero, Quaternion.identity, parent) as GameObject; CommonGear gear = newGear.GetComponent <CommonGear>(); gear._gearCollideHandler = gearCollideHandler; return(newGear); }
void handleCollide(Collision2D collision, CommonGear source) { Debug.Log("Collision done!"); }