Djeurissen Geschrieben 20. August 2014 Melden Share Geschrieben 20. August 2014 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.