Skip to main content
remove excessive whitespace
Source Link
Kevin
  • 7k
  • 1
  • 12
  • 32

I am making a turn based game and I want to switch turns after a user is done back and forth. I cant use update as it will restart the turn every frame. My code is:

public enum gameState { Start,p1Turn,p2Turn,Won,Lost} 

public class battleSsystem : MonoBehaviour { public gameState state; int randomTurn = 0;

public gameState state; int randomTurn = 0; int p1TurnCount = 5; int p2TurnCount = 5; bool flag = true;   // Start is called before the first frame update void Start() { state = gameState.Start; StartCoroutine(setupBattle()); randomTurn = Random.Range(1, 3); if (randomTurn == 1) { state = gameState.p1Turn;  } else if (randomTurn == 2) { state = gameState.p2Turn;    }   if (state == gameState.p1Turn) { Debug.Log("P1 Turn start"); p1Turn();  }   if (state == gameState.p2Turn) { Debug.Log("P2 Turn start");   p2Turn();    }   }   IEnumerator setupBattle() { yield return new WaitForSeconds(0f); }   void p1Turn() { Debug.Log("inside p1 turn"); p1Enable();//enables the player 1 controller p2Disable();//disables player 2 controller  }     void p2Turn() { Debug.Log("inside p2 turn"); p2Enable();//enables the player 2 controller p1Disable();//disables player 1 controller   } 

So now this code at start will setup the battles. For now the function is empty. Then it will select a random turn and change the state according to it. This will only work once but i want it to work until p1TurnCount and p2TurnCount is 0. How can i run this back and forth?

I am making a turn based game and I want to switch turns after a user is done back and forth. I cant use update as it will restart the turn every frame. My code is:

public enum gameState { Start,p1Turn,p2Turn,Won,Lost} 

public class battleSsystem : MonoBehaviour {

public gameState state; int randomTurn = 0; int p1TurnCount = 5; int p2TurnCount = 5; bool flag = true;   // Start is called before the first frame update void Start() { state = gameState.Start; StartCoroutine(setupBattle()); randomTurn = Random.Range(1, 3); if (randomTurn == 1) { state = gameState.p1Turn;  } else if (randomTurn == 2) { state = gameState.p2Turn;    }   if (state == gameState.p1Turn) { Debug.Log("P1 Turn start"); p1Turn();  }   if (state == gameState.p2Turn) { Debug.Log("P2 Turn start");   p2Turn();    }   }   IEnumerator setupBattle() { yield return new WaitForSeconds(0f); }   void p1Turn() { Debug.Log("inside p1 turn"); p1Enable();//enables the player 1 controller p2Disable();//disables player 2 controller  }   void p2Turn() { Debug.Log("inside p2 turn"); p2Enable();//enables the player 2 controller p1Disable();//disables player 1 controller   } 

So now this code at start will setup the battles. For now the function is empty. Then it will select a random turn and change the state according to it. This will only work once but i want it to work until p1TurnCount and p2TurnCount is 0. How can i run this back and forth?

I am making a turn based game and I want to switch turns after a user is done back and forth. I cant use update as it will restart the turn every frame. My code is:

public enum gameState { Start,p1Turn,p2Turn,Won,Lost} 

public class battleSsystem : MonoBehaviour { public gameState state; int randomTurn = 0;

int p1TurnCount = 5; int p2TurnCount = 5; bool flag = true; // Start is called before the first frame update void Start() { state = gameState.Start; StartCoroutine(setupBattle()); randomTurn = Random.Range(1, 3); if (randomTurn == 1) { state = gameState.p1Turn; } else if (randomTurn == 2) { state = gameState.p2Turn; } if (state == gameState.p1Turn) { Debug.Log("P1 Turn start"); p1Turn(); } if (state == gameState.p2Turn) { Debug.Log("P2 Turn start"); p2Turn(); } } IEnumerator setupBattle() { yield return new WaitForSeconds(0f); } void p1Turn() { Debug.Log("inside p1 turn"); p1Enable();//enables the player 1 controller p2Disable();//disables player 2 controller }   void p2Turn() { Debug.Log("inside p2 turn"); p2Enable();//enables the player 2 controller p1Disable();//disables player 1 controller } 

So now this code at start will setup the battles. For now the function is empty. Then it will select a random turn and change the state according to it. This will only work once but i want it to work until p1TurnCount and p2TurnCount is 0. How can i run this back and forth?

Source Link
Nomi
  • 33
  • 8

How do I keep switching turns/states until a result is determined in unity?

I am making a turn based game and I want to switch turns after a user is done back and forth. I cant use update as it will restart the turn every frame. My code is:

public enum gameState { Start,p1Turn,p2Turn,Won,Lost} 

public class battleSsystem : MonoBehaviour {

public gameState state; int randomTurn = 0; int p1TurnCount = 5; int p2TurnCount = 5; bool flag = true; // Start is called before the first frame update void Start() { state = gameState.Start; StartCoroutine(setupBattle()); randomTurn = Random.Range(1, 3); if (randomTurn == 1) { state = gameState.p1Turn; } else if (randomTurn == 2) { state = gameState.p2Turn; } if (state == gameState.p1Turn) { Debug.Log("P1 Turn start"); p1Turn(); } if (state == gameState.p2Turn) { Debug.Log("P2 Turn start"); p2Turn(); } } IEnumerator setupBattle() { yield return new WaitForSeconds(0f); } void p1Turn() { Debug.Log("inside p1 turn"); p1Enable();//enables the player 1 controller p2Disable();//disables player 2 controller } void p2Turn() { Debug.Log("inside p2 turn"); p2Enable();//enables the player 2 controller p1Disable();//disables player 1 controller } 

So now this code at start will setup the battles. For now the function is empty. Then it will select a random turn and change the state according to it. This will only work once but i want it to work until p1TurnCount and p2TurnCount is 0. How can i run this back and forth?