Moving square to square + main script
Hello everyone, i m new to Unity and got a few basic questions (I couldn't find answers on the forum).
I'm creating a board game that is turn-based, like a monopoly and i struggle to move my characters. In fact, the board isn't a line so they have to turn in order to follow the right path. For instance from square n°5 to n°6 it should translate on the x-axis and then from n°6 to n°7 on the z-axis (I hope it's clear). So i wrote this code :
// pos is the number of the square the player is on
// digit is an integer returned by a dice
// golem is the player
void Move(int pos, int digit)
{
Vector3 current;
Vector3 target;
float step = 1 * Time.deltaTime;
while (digit > 0)
{
current = golem.transform.position;
switch (pos)
{
case 0:
target = current + new Vector3(-10,0,0);
while (current != target)
{
golem.transform.position = Vector3.MoveTowards(current, target, step);
}
break;
//Same thing for case 1,2,3,4,5
case 6:
target = current + new Vector3(0,0,10);
while (current != target)
{
golem.transform.position = Vector3.MoveTowards(current, target, step);
}
break;
}
pos++;
digit--;
}
}
But when i run the code (there are no compile errors), as soon as it enters in a case (in the switch), unity crashes.
Second matter, how am i supposed to deal with the general progress of the game ? I mean, can i write a main script that rules everything ? Like : throw the dice, then move the character, then get that card and so on...
Thanks.
Your answer
Follow this Question
Related Questions
Instantiate (clone) object doesn't move 0 Answers
Vector3.MoveTowards Problems 0 Answers
How to detect changing values in update 1 Answer
How can I use Vector2.MoveTowards to UIElements 0 Answers
Trick to move a game object smoothly to left and right 0 Answers