Jump to content
Unity Insider Forum

Gazinho

Members
  • Content Count

    7
  • Joined

  • Last visited

Community Reputation

1 Neutral

About Gazinho

  • Rank
    Newbie
  1. Hallo, ich habe mit dem ersten vor etwa 3 Monaten begonnen und fand das für den Einstieg ganz gut. Es wird auch ein kurzer Einstieg in C# vermittelt, aber nicht sonderlich tief. Für den Einstieg aber auch ausreichend. Ich hab das Buch aber nicht komplett durchgelesen, als ich die Grundsätze glaubte verstanden zu haben, habe ich ein paar youtube-guides angesehen und inzwischen hilft mir oft auch google, die docs von unity oder dieses Forum. Die beiden anderen kenne ich leider nicht. Für welches auch immer Du Dich entscheidest: Viel Spaß!
  2. Zu dem Thema hätte ich eine Nachfrage (versuche das im 2D-Modus umzusetzen): Ich habe eine Übersichtskarte mit sagen wir mal 4 Gebäuden darauf. Die GO (nennen wir sie mal Arbeiter) kann ich auf dieser Ü-Karte von Gebäude zu Gebäude schicken und dann die Gebäude betreten. In den Gebäuden sollen sie dann Aufgaben erfüllen. Interaktion zwischen dem Spieler und dem einzelnen GO findet auch innerhalt der Gebäude statt. Der Wechsel zwischen der Ü-Karte in die einzelnen Gebäude und zurück findet sehr schnell statt - in etwa im beschriebenen 5-Sekunden-Takt. Die Variante mit dem Szenenwechsel ist offensichtlich (nach oben beschriebenen und nach meinen Selbstversuchen gestern Abend) keine praktikable Lösung. Wäre es ratsam, Ü-Karte und einzelne Gebäude alle in eine Szene (beispielsweise nebeneinander) zu "zeichnen" und dann den Wechsel über Positionswechsel der Kamera stattfinden zu lassen? Dann arbeiten ja alle Arbeiter weiter oder bewegen sich usw. während man Räume wechselt. Oder gibt es eine noch bessere Lösung, die mir bei meinen Recherchen verborgen blieb?
  3. Herzlichen Dank für die sehr hilfreichen Ausführungen! Mich bringt das wirklich weiter!
  4. Möglicherweise habe ich mich unklar ausgedrückt. Ich meinte den Ansatz, wenn es darum geht, einer Klasse eine Information zu geben. Auch in der objektorientierten Programmierung scheint es ja auch so zu sein, dass es immer eine "führende" Klasse gibt, die alle Ausführungen verwaltet. Es macht ja wenig Sinn, wenn die einzelnen Objekte unverbindlich nebeneinander her existieren. Der "führenden" Klasse müssen von den anderen Objekten Informationen übergeben werden - es macht in meinen Augen wenig Sinn, wenn sich die führende Klasse die Informationen einholt. Ich bin echt noch recht frisch in der Programmierung, ich habe erst im Dezember 2019 mich wieder mit der Thematik Programmierung beschäftigt. Ich konnte vor 30 Jahren passabel BASIC auf dem C64 und nachfolgend ein bisschen Turbo-Pascal auf dem PC. Danach war ich quasi 30 Jahre raus. Aber wenn man der objektorientierten Programmierung (nach meinem rudimentären Verständnis) folgt, ist das "Main-Objekt" immer der User vor dem Bildschirm. Da müssen die Informationen hin. Innerhalb der Unity werden die Informationen der einzelnen Objekte aber auch in einer führenden Klasse gesammelt, damit sie in Relation zueinander stehen können. Dafür dienst nach vorläufiger Bewertung die static-Variante vorzüglich. Ich lasse mich aber gerne jederzeit eines besseren belehren, denn ich habe mit meiner Ursprungsfrage ja nicht nach einer funktionierenden Lösung gefragt, sondern nach der logischsten.
  5. Funktioniert übrigens traumhaft! Ich hatte diese Idee mit der static-Variablen zwar schonmal, damals hatte das aber nicht funktioniert. Wahrscheinlich habe ich damals irgendetwas übersehen (vielleicht diese zusätzlich public zu deklarieren). Mit dem public-static-Zugriffsmodifikator lässt sich also auch in Unity hervorragend zwischen den Skripten der Objekte "kommunizieren". Wenn man das googlet, dann bekommt mal leider nur die zu komplizierten, aber auch funktionierenden Varianten mit GetComponent oder RayCast. Herzlichen Dank für die schnelle und treffende Antwort! Hat sich absolut gelohnt, sich hier anzumelden!
  6. Herzlichen Dank! Ich schaue mir das gleich mal an 🙂
  7. Guten Abend allerseits, ich habe ein Programmierproblem, das ich mit meinen google-Fähigkeiten leider nicht lösen kann. Ich bin noch relativer Anfänger und finde leider keine (befriedigende) Lösung. Die Lösung mit GetComponent <> halte ich für eine äußerst unelegante Variante. Es geht um folgendes (Beispielhaft im 2D ): Ich möchte ein GameObjectP zu irgendeinem einem anderen von sehr vielen GameObjectX schicken. Ich markiere das GameObjectP mit OnMouseDown() {bool detected = true;} und möchte es dann mit Rechtsklick zum GameObjectX schicken: if (Input.GetMouseButtonDown(1) && /*Rechtsklick auf collider von GameObject2*/ ) {destination = GameObjectX.transform.position}; transform.Translate(destination etc.);. Ich möchte letzten Endes nicht, dass GameObjectP von allen anderen GamObjectX über GetComponent abfrägt, ob es mit Rechtsklick angeklickt wurde. Gibt es eine charmantere Lösung? Herzliche Grüße
×
×
  • Create New...