the-grandmaster Geschrieben 24. Dezember 2015 Melden Share Geschrieben 24. Dezember 2015 hallo, ich würde gerne ein Handelssystem für mein Weltraumspiel machen. Wenn mann in der nähe von einen Planeten ist soll menn einen Butten drücken und der Bildschirm soll sich öffnen. Habe das ganze schon einemal mit 3D Gamestudio gemacht, war einfach recht einfach. Nur bei Unity habe ich das ganze noch nicht verstanden. Wie öffne und schliesse ich so ein Panel? Ein Steuerungs Panel habe ich schon, das ist immer da. Das ganze soll dann so sein wie bei Port Royal Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
systemerror Geschrieben 24. Dezember 2015 Melden Share Geschrieben 24. Dezember 2015 Ich würde das auch mit mehreren Canvas lösen unter denen die jeweilige GUI-Elemente sind, wie Du ja schon selbst erkannt hast. die gameobjects initialisiert man schon mal in Start oder Awake goSpaceCanvas = GameObject.Find ("SpaceCanvas"); goTradeCanvas = GameObject.Find ("TradeCanvas"); man kann pro Gameobject-canvas eigene methoden erstellen static public void SetSpaceCanvas(bool active){ goSpaceCanvas.SetActive (active); } static public void SetTradeCanvas(bool active){ goTradeCanvas.SetActive (active); } und in dem Button kannst Du das Weltraum-canvas false setzen und das Handels-canvas true, ist es das was Du meinst?? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
the-grandmaster Geschrieben 24. Dezember 2015 Autor Melden Share Geschrieben 24. Dezember 2015 ich glaube ich verstehe, so etwas wie umschalten. Danke. Werde jetzt mal versuchen das um zu setzen. Kann ich eigendlich in einen Canvas schon alles reinpacken was ich brauche? schrift und die ganzen Butten? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
systemerror Geschrieben 24. Dezember 2015 Melden Share Geschrieben 24. Dezember 2015 ja klar man kann wenn man will alles im Inspector designen, die neue GUI ist voll wysiwyg (what you see is what you get) Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
the-grandmaster Geschrieben 25. Dezember 2015 Autor Melden Share Geschrieben 25. Dezember 2015 Kannst du mir bitte erklären wie das genau geht? ich sitze da bestimmt schon 12 Stunden drann. ich habe 2 Canvas, beide habe ich umbenannt. einen in Steuern und den anderen in Handeln mit dem Panel Planet. Das script habe ich auf die Cam gelegt. Im Editor habe ich Handeln Deactiviert. Eine Pausenfunction habe ich eingebaut und in der Pause soll das eine Panel aus und das andere eingeschaltet werden. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
systemerror Geschrieben 26. Dezember 2015 Melden Share Geschrieben 26. Dezember 2015 da kann ich nur raten ich kenne das prog ja nicht, also wenn Du ein Canvas im Inspector disabled hast, kann es sein, dass das gameobject nicht initialisiert wird, wenn Du alles auf Fehler prüfst zB mit Debug.Log (wird ins console-Fenster ausgegeben Window->Console). Wenn es daran liegt solltest Du den Canvas erst im Programm nach der Initialisierung disablen. goSpaceCanvas = GameObject.Find ("SpaceCanvas"); if(goSpaceCanvas==null)Debug.Log("SpaceCanvas not found."); usw Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
the-grandmaster Geschrieben 26. Dezember 2015 Autor Melden Share Geschrieben 26. Dezember 2015 Nochmal Danke, aber ich verstehe nicht wie es gehen soll. Ich weis nicht wo das Script hin soll. Ob ich die Canvas umbenennen darf. habe mir schon ein Wolf gesucht und alles was ich gefunden hat klappt nicht. using UnityEngine; using System.Collections; using UnityEngine.UI; public class Planet : MonoBehaviour { private bool isPause = false; // Use this for initialization void Start () { } // Update is called once per frame void Update () { if (Input.GetKeyDown (KeyCode.L)) ToggleTimeScale (); } void ToggleTimeScale() { if (!isPause) { Time.timeScale = 0; } else { Time.timeScale = 1; } isPause = !isPause; } } Das habe ich jetzt und alles was ich versucht habe geht nicht. Im Editor schaut es so aus: Canvas ->Steuern ->Planet Es soll jetzt beim Starten Steuern ein und Planet aus sein. Wie geht das? und wo muß das Script hin damit es geht. Bitte mit erklärung. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sargon Geschrieben 28. Dezember 2015 Melden Share Geschrieben 28. Dezember 2015 Ich würde von GameObject.Find abraten. Wozu gibt es denn den schönen Inspektor in dem man Referenzen setzen kann? public GameObject canvas; public void ToggleCanvasMenu() { canvas.SetActive(!canvas.activeSelf); Time.timeScale = Time.timeScale == 1 ? 0 : 1; } private void Update() { if (Input.GetKeyDown(Keys.L)) ToggleCanvasMenu(); } Jetzt ist der Name des Objektes egal und du kannst das Canvas dass du benutzen möchtest im Inspektor des Scriptes setzen. 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.