Hey all.
I’m brand new to Unity, so I’m just doing a Tic Tac Toe game to learn the basics.
Everything is working up until I try to reference a Square in the array. I’m having trouble finding a way to store object (Square) references in such a way they can be accessed from their container, called Square_Boss, which is just an empty GameObject with an attached script. The Squares are Cubes I have all set up in the editor; a 2D scene.
I plan to use Square_Boss to hold the win condition logic, which is why I need the array in the first place.
public class Square_Boss : MonoBehaviour
{
public GameObject[] squares;
//initialization
void Start ()
{
squares = GameObject.FindGameObjectsWithTag ("SQU");
}
public static void Win ()
{
int[] states = new int[9];
for (int i = 0; i < squares.Length; i++) {
states _= squares *.getClickedBy ();*_
_ Debug.Log (states );
* }
}
}*_
The Square class looks like this:
public class Square : MonoBehaviour
{
* private bool isClicked = false;*
* private int clickedBy = 0;*
* private Color[] theColors = {Color.white, Color.red, Color.blue};*
* private static int playerNumber = 1;*
* private static int clicks = 0;*
* // Use this for initialization*
* void Start ()*
* {*
* renderer.material.color = theColors [0];*
* }*
* private void OnMouseDown ()*
* {*
* if (clicks < 9) {*
* if (!isClicked) {*
* SetState ();*
* }*
* }*
* else SendMessageUpwards(“Win”);*
* }*
* private void SetState ()*
* {*
* if (playerNumber == 1) {*
* renderer.material.color = theColors [1];*
* } else {*
* renderer.material.color = theColors [2];*
* }*
* isClicked = true;*
* clickedBy = playerNumber;*
* ChangePlayer ();*
* }*
* private void ChangePlayer ()*
* {*
* if (playerNumber == 1) {*
* playerNumber = 2;*
* } else {*
* playerNumber = 1;*
* }*
* }*
* public bool getClicked ()*
* {*
* return isClicked;*
* }*
* public int getClickedBy ()*
* {*
* return clickedBy;*
* }*
}
How do I make it so I can store references to the Squares and call their public methods from the Square_Boss script? When I try to make the array type Square[] it gives me an error about implicit casting or something (can’t remember exactly, I tried that a while ago).
This is my first question on here, so I apologize for the noob mistakes. I looked around for answers but none of them made sense to me out of context. Also, sorry if the indents are weird… I made the mistake of telling MonoDevelop to format my code for me. =P