Hallo zusammen,
Ich wollte mit Unity ein Tic Tac Toe Spiel erstelle,
ich habe versucht mit einem array vom Typ Rect die 3x3 Felder eines Tic Tac Toe Spiel zu erstellen und darzustellen.
Dabei bin ich aber auf Schwierigkeiten gestossen, egal wie ich es versucht habe, ich habe es nicht geschafft die Felder darzustellen,
ich denke aber das ich von der Lösung nicht mehr so weit entfernt bin.
Also was muss ich ändern damit ich ein 3x3 Feld erhalte??
Mein Code:
Vielen Dank schon mal in Voraus für eure Hilfe
Lg
Phoenix
Ich wollte mit Unity ein Tic Tac Toe Spiel erstelle,
ich habe versucht mit einem array vom Typ Rect die 3x3 Felder eines Tic Tac Toe Spiel zu erstellen und darzustellen.
Dabei bin ich aber auf Schwierigkeiten gestossen, egal wie ich es versucht habe, ich habe es nicht geschafft die Felder darzustellen,
ich denke aber das ich von der Lösung nicht mehr so weit entfernt bin.
Also was muss ich ändern damit ich ein 3x3 Feld erhalte??
Mein Code:
C#:
using System.Collections.Generic;
using UnityEngine;
using System;
public class WereIsClicked : MonoBehaviour
{
public Rect[] rects = new Rect[9];
void Start()
{
transform.position = new Vector3(Camera.main.aspect * Camera.main.orthographicSize, Camera.main.orthographicSize, 0);
float camwidth = Camera.main.aspect * Camera.main.orthographicSize * 2;
float camheight = Camera.main.orthographicSize * 2;
float xpos = (camwidth / 2) - (camheight / 2);
float ypos = 0;
for (int i = 0; i < 9; i++)
{
rects[i] = new Rect(xpos, ypos, camheight / 3, camheight / 3);
if (ypos >= camheight)
{
Debug.Log("Set y to zero");
ypos = 0;
xpos += (camheight / 3);
Debug.Log("Before: Y of Rec number: "+i+" is "+rects[i].y);
rects[i] = new Rect(xpos, ypos, camheight / 3, camheight / 3);
Debug.Log("After Y of Rec number: " + i + " is " + rects[i].y);
}
else
{
ypos += (camheight / 3);
}
}
}
// Update is called once per frame
void Update()
{
Vector3 mouseposition = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 1.0f));
for (int i = 0; i < 9; i++)
{
if (Input.GetMouseButtonDown(0) && rects[i].Contains(mouseposition))
{
UnityEngine.Debug.Log("Das Quadrat Nummer " + i + " wurde angeklickt");
Debug.Log(rects[i].y);
}
}
}
void OnDrawGizmos()
{
float camwidth = Camera.main.aspect * Camera.main.orthographicSize * 2;
float camheight = Camera.main.orthographicSize * 2;
//Canvas
Rect Canvas = new Rect(0, 0, camwidth, camheight);
Gizmos.color = new Color(0.0f, 1.0f, 0.0f);
DrawRect(Canvas);
for (int i = 0; i < 9; i++)
{
DrawRect(rects[i]);
}
}
void DrawRect( Rect rect )
{
Gizmos.DrawWireCube(new Vector3(rect.center.x, rect.center.y, 0.01f), new Vector3(rect.size.x, rect.size.y, 0.01f));
}
}
Vielen Dank schon mal in Voraus für eure Hilfe
Lg
Phoenix