Jump to content
Unity Insider Forum

yawahoo

Members
  • Content count

    4
  • Joined

  • Last visited

Community Reputation

0 Neutral

About yawahoo

  • Rank
    Newbie

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. yawahoo

    Anfängerfrage (1. Tag mit Unity :-)

    Ne, das ist es noch nicht ganz. Nehmen wir mal ein anderes Beispiel. Ich erstelle per Instantiate 5 x 5 Prefaps aus weiß gefüllten Kreisen für ein 5 gewinnt Spielfeld. Soweit einfach. Nun klickt der erste Spieler im ersten Zug einen Kreis an, der dann rot gefärbt wird. Soweit auch noch zu machen. Nun soll der erste Spieler aber auf einen Button klicken der den Zug beendet, die Daten speichert und an einen anderen Spieler überträgt. Dieser wiederum läd den Spielstand, macht seinen Zug und so weiter. Beim Speichern muss ja nun abgelegt werden welche Farbe die Kreise an welcher Position haben. Da ich das beim Spielstart nicht weiß muss ich das aus einer Datei lesen. Und hier stellt sich mir die Frage ob ich die 25 erstellt GameObjecte (Prefaps), bzw. deren Zustand wie Position und Farbe, direkt in eine Datei "schreiben" kann.
  2. yawahoo

    Anfängerfrage (1. Tag mit Unity :-)

    In dem Video wird das in der IDE gemacht. Aber wie macht man das zur Laufzeit wenn ich zB per GameObject kopf_GO = (GameObject)Instantiate(Kopf, new Vector3(x,y, 0), Quaternion.identity); GameObject torsus_GO = (GameObject)Instantiate(Torsus, new Vector3(x,y, 0), Quaternion.identity); GameObject armli_GO = (GameObject)Instantiate(ArmLi, new Vector3(x,y, 0), Quaternion.identity); GameObject armre_GO = (GameObject)Instantiate(ArmRe, new Vector3(x,y, 0), Quaternion.identity); GameObject beinli_GO = (GameObject)Instantiate(BeinLi, new Vector3(x,y, 0), Quaternion.identity); GameObject beinre_GO = (GameObject)Instantiate(BeinRe, new Vector3(x,y, 0), Quaternion.identity); kopf_GO.transform.SetParent(this.transform); torsus_GO.transform.SetParent(this.transform); armli_GO.transform.SetParent(this.transform); beinli_GO.transform.SetParent(this.transform); beinre_GO.transform.SetParent(this.transform); den Körper erstelle. Kann ich dieses "this" dann speichern und später im Spiel wieder laden? Vielleicht kommt es nicht richtig rüber. Ich möchte eine Welt aus Feldern generieren. Im Moment mache ich das mit einer Classe <FeldClass> aus der ich eine Liste Spielfeld<FeldClass> erstelle. In dieser Liste speichere ich die Eigenschaften der einzelnen Felder, gehe dann diese Liste mit foreach durch und erstelle per Instantiate die einzelnen Felder als GameObjecte. Wenn ich nun keine Lust mehr habe zu spielen serialisiere ich meine Liste einfach auf die Festplatte. Später deserialisiere ich die Liste wieder und erstelle wieder meine GameObjecte. Die Frage ist nun, ob man/ich nicht einfach die GameObjecte direkt serialisieren/speichern kann.
  3. Hallo zusammen. Ich habe per Visual C# ein Spiel programmiert. Es ist ein rundenbasierendes Strategiespiel auf einem Hexfeld. Das ganze möchte ich nun in Unity umsetzen und habe dazu eine grudsätzlich Frage. Ich habe folgende Classe: using System; using System.Collections.Generic; using UnityEngine; [Serializable] public class GrundfeldClass : MonoBehaviour { public int Bodenart; public float unityXPos; public float unityYPos; public float weltXPos; public float weltYPos; } Und erstelle dann in folgendem Script Felder für ein Spielfeld: using System.Collections; using System.Collections.Generic; using UnityEngine; public class Weltbau : MonoBehaviour { public GameObject TiefseePrefap; public GameObject EbenePrefap; public List<GrundfeldClass> Spielfeld; public GrundfeldClass tempFeld; public const int Ebene = 3; public const int Tiefsee = 1; // Use this for initialization void Start () { float Hexoffset = 0.01f; // "Luft" zwischen den Hexagons for (int x = 0; x < 10; x++){ for (int y = 0; y < 10; y++){ Debug.Log(x + "," + y); //tempFeld = new GrundfeldClass(); tempFeld = gameObject.AddComponent<GrundfeldClass>(); if (y % 2 == 1) { tempFeld.unityXPos = x * (0.41f + Hexoffset) + 0.2f; tempFeld.unityYPos = y * (0.31f + Hexoffset); tempFeld.weltXPos = x; tempFeld.weltYPos = y; tempFeld.Bodenart = Tiefsee; } else { tempFeld.unityXPos = x * (0.41f + Hexoffset); tempFeld.unityYPos = y * (0.31f + Hexoffset); tempFeld.weltXPos = x; tempFeld.weltYPos = y; tempFeld.Bodenart = Ebene; } Spielfeld.Add(tempFeld); } } foreach (GrundfeldClass _feld in Spielfeld) { switch (_feld.Bodenart) { case Tiefsee: Instantiate(TiefseePrefap, new Vector3(_feld.unityXPos, _feld.unityYPos, 0), Quaternion.identity); break; case Ebene: Instantiate(EbenePrefap, new Vector3(_feld.unityXPos, _feld.unityYPos, 0), Quaternion.identity); break; default: break; } } } } Jetzt habe ich ja meine Liste <Spielfeld> mit den Feldern, die ich serialisieren und somit speichern und wieder laden kann. Dann habe ich noch die per Instantiate erstellten GameObjecte. So gesehen ist das ganze ja doppelt vorhanden. Besteht die Möglichkeit die per Instantiate erstellten Objekte zu speichern/laden. Praktisch wie ein Spielstand? Danke für Hilfe JAn
  4. yawahoo

    Linie erzeugen

    Geht sowas nicht mit Raycasting?
×