Jump to content
Unity Insider Forum

Ist ein Event hier sinnvoll?


Djeurissen

Recommended Posts

Tagchen, ich bastel gerade an einem Rundenbasierten Taktikspiel.

 

Ähm, joa viel habe ich noch nicht XD

 

 

 

using System.Collections.Generic;
using UnityEngine;
public class GameManager : MonoBehaviour
{
public static GameManager Instance;
public int MapSize = 10;
public Vector2 SelectedField;
public GameObject TilePrefab;
public GameObject PlayerPrefab;
public List<List<Tile>> Map = new List<List<Tile>>();
public List<UserPlayer> UserPlayers = new List<UserPlayer>();
public List<UserPlayer> AiPlayers = new List<UserPlayer>();
void Awake()
{
	Instance = this;
	GenerateMap();
}
void GenerateMap()
{
	for (int x = 0; x < MapSize; x++)
	{
		var row = new List<Tile>();
		for (int y = 0; y < MapSize; y++)
		{
			var newTile = ((GameObject)Instantiate(TilePrefab, new Vector3(x, -y, 0), Quaternion.Euler(new Vector3()))).GetComponent<Tile>();
			newTile.GridPosition = new Vector2(x, y);
			row.Add(newTile);
		}
		Map.Add(row);
	}
}
}

 

using UnityEngine;
public class Tile : MonoBehaviour
{
public Vector2 GridPosition;
void OnMouseEnter()
{
	GameManager.Instance.SelectedField = GridPosition;
	transform.renderer.material.color = Color.red;
}
void OnMouseExit()
{
	transform.renderer.material.color = Color.white;
}
}

 

 

 

Im Grunde kann man nur Felder auswählen, nun will ich zu beginn des Spiels dem Spieler ermöglichen Einheiten zu platzieren.

Zuerst dachte ich mir das ich einfach in Tile, sobald OnMouseEnter aufgerufen wird, ich über dem Tile ein Prefab anzeige und warte bis der Spieler Linksklick macht.

 

Allerdings finde ich es sehr unsauber wenn meine Klasse Tile das platzieren der Einheiten regelt, also soll ein neues Skript her welches das platzieren der Spieler regeln soll. Nun ist die Frage, woher weiß mein neues Skript ob sich das ausgewählte Feld verändert hat? Wäre es klug dafür ein Event zu benutzen oder gibt es da eine bessere Möglichkeit?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Lädt...
×
×
  • Neu erstellen...