private void OnCollisionEnter(Collision other) { if (other.gameObject.name == "Abyss") { Destroy(gameObject); return; } if (other.gameObject.name != "Ground") { if (transform.parent == null) { if (other.gameObject.transform.parent != null) { Destroy(gameObject); } else if (transform.position.y > other.transform.position.y) { Destroy(gameObject); } } } else { var new_tree = Instantiate(_treePrefab); new_tree.name = "Tree" + WorldController.GetIndexer(); WorldController.IncreaseIndexer(); WorldController.AddTree(new_tree); var pos = transform.position; new_tree.transform.position = new Vector3(pos.x, 0, pos.z); new_tree.GetComponent <TreeController>().SetGenes(_genes); Destroy(gameObject); } }