// generic interaction public void Interact(GameObject interactor) { // if we have player or player tower (i.e. some stacked Cubes) Stacked sc = interactor.GetComponent <Stacked>(); if (sc != null) { GameObject top = sc.GetFirst(); Player player = top.GetComponent <Player>(); if (player != null) { // promote to next level player.Promote(); } } }
// When the Cube is interacted by other object (Player or other cube), generic (withou direction) public void Interact(GameObject interactor) { // if the interactor is a Stacked object (Player or Player's "Cube tower") Stacked stacked = interactor.GetComponent <Stacked>(); if (stacked != null) { Player player = stacked.GetFirst().GetComponent <Player>(); //if (top.GetComponent<Player>() != null) // if is interacted not by Player or Player's "Cube tower" if (player == null) // if is interacted not by Player or Player's "Cube tower" { return; } // else - stack stacked.Stack(gameObject); } }