amdbuster Geschrieben 17. März 2019 Melden Share Geschrieben 17. März 2019 Hi. Ich mache gerade ein tutorial, und da wurde ein Array erstellt, in dem ich dann in Unity Objekte zuweisen soll. Nur klappt das bei mir nicht(nicht mit Array, mit einer Liste geht das). Hier mal die Codes wie im Tut: Baue: public class Baue : MonoBehaviour { public BauplatzElement[] grid; // alle bauplatzelemente } Bauplatzelement: public class BauplatzElement : MonoBehaviour { public int bauplatzID; public bool belegt; } wenn ich jetzt in Unity die Objekte zuweisen möchte, geht das nicht(siehe Bild). Bin die Videos nochmal durchgegangen, finde aber keine Fehler. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Jomnitech Geschrieben 17. März 2019 Melden Share Geschrieben 17. März 2019 Der komplette Code wäre schön, ev fehtl im header ein System.Serializable, oder sonste etwas fehlt. Was mich etwas stutzig macht ist dass du im Inpsektor ein Leerschalg zwischen Bauplatz und Elemente hast. Hast du ein link zum Tutorial das du verwendest? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
amdbuster Geschrieben 18. März 2019 Autor Melden Share Geschrieben 18. März 2019 Baue(hatte zum testen mal den restlichen Code deaktiviert): using System.Collections; using System.Collections.Generic; using UnityEngine; public class Baue : MonoBehaviour { public BauplatzElement curSelectedGridElement; public BauplatzElement curHoveredGridElement; //mit der maus darüber public BauplatzElement[] grid; // alle bauplatzelemente } /* [Header("Farben")] public Color colOnHover = Color.white; public Color colOnBesetzt = Color.red; private Color colOnNormal; private RaycastHit mausTreffer; //zur ekennung des spielfeldes mittels einem ray void Awake () { // die ursprüngliche Farbe des grids wiederherstellen colOnNormal = grid[0].GetComponentInChildren<MeshRenderer>().material.color; } void Update () { // ray = da wo sich die maus im Bildschirm befindet Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if(Physics.Raycast(ray, out mausTreffer)) // wo ist die maus { // wenn baupl.element von maus getroffen wurde, dann in element "be" speichern BauplatzElement be = mausTreffer.transform.GetComponent<BauplatzElement>(); //ist die maus über einem bauplatz if(!be) { if (curHoveredGridElement) curHoveredGridElement.GetComponent<MeshRenderer>().material.color = colOnNormal; return; } if(Input.GetMouseButton(0)) { curSelectedGridElement = be; } if(be!=curHoveredGridElement) // wenn baupl.element nicht hervorgehoben { if(!be.belegt) { //wenn nicht besetzt normale farbe mausTreffer.transform.GetComponent<MeshRenderer>().material.color = colOnNormal; } else { //ansonsten auf besetztfarbe mausTreffer.transform.GetComponent<MeshRenderer>().material.color = colOnBesetzt; } } // gibte es eines und ist es nicht gleich be if(curHoveredGridElement && curHoveredGridElement != be) { curHoveredGridElement.GetComponent<MeshRenderer>().material.color = colOnNormal; } curHoveredGridElement = be; } else //was passiert wenn kein bauplatz getroffen wurde { //existiert ein baupl. dann die farbe auf ursprung if(curHoveredGridElement) curHoveredGridElement.GetComponent<MeshRenderer>().material.color = colOnNormal; } }*/ und beim Bauplatz fehlt eigentlich nur: using System.Collections; using System.Collections.Generic; using UnityEngine; Das Tutorial ist Der Unity 2017 & Blender Komplettkurs: Erstelle Top 3D Games auf Udemy. Im Anhang ist ein Screenshoot vom Baue Code. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Jomnitech Geschrieben 18. März 2019 Melden Share Geschrieben 18. März 2019 @amdbuster Hast du irgendwelche Errors? Wenn ich dein Code von Bauplatzelement kopiere funktioniert das nicht. Der int bauplatzID ist bei grau. Irgend ein Zeichen versteht er nicht, wenn ich es selber eintippe gehts. vor 19 Stunden schrieb amdbuster: public int bauplatzID; Sollte eigentlich blau sein. 1. Sind die Bauplatzelemente den auch in der Scene vorhanden? 2. Haben die Bauplatzelemente denn auch das Bauplatzelement Script drauf? Also bei mir geht es... Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
amdbuster Geschrieben 18. März 2019 Autor Melden Share Geschrieben 18. März 2019 AH damnt, Punkt 2 habe ich übersehen😵, manchmal kann es so einfach sein THX Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Jomnitech Geschrieben 18. März 2019 Melden Share Geschrieben 18. März 2019 🙃 Schön das ich helfen konnte 🤗 Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.