acidrain83 Geschrieben 27. Juni 2018 Melden Share Geschrieben 27. Juni 2018 hy also ich hätte eine frage und zwar ist es möglich eine texttafel zu erstellen? wenn ja wie? also mit UI.text geht das ja nicht .ich habe eine kleine scene für meinen rollerball charakter gemacht und ich habe dort eine platform die sich bewegt wenn man auf dem trigger objekt ist. jedoch will ich dafür eine tafel stehen haben die das zeigt oder erklärt. ich hoffe ihr versteht was ich meine. wäre toll wenn ihr mir da tipps geben könntet. mfg Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
acidrain83 Geschrieben 27. Juni 2018 Autor Melden Share Geschrieben 27. Juni 2018 und eins noch: wie kann ich abfragen ob man gerade in diesem level ist? also zb: if (level == lvl1) //mach das Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Mr 3d Geschrieben 27. Juni 2018 Melden Share Geschrieben 27. Juni 2018 vor 48 Minuten schrieb acidrain83: also mit UI.text geht das ja nicht Warum denn nicht? Du kannst dein Canvas auf 'World Space' umstellen und dann in deiner Scene platzieren. Ansonsten könntest du auch ein TextMesh verwenden https://docs.unity3d.com/Manual/class-TextMesh.html Die aktuell geladene Scene kannst du per 'SceneManager.GetActiveScene()' bekommen. https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.GetActiveScene.html (nicht vergessen den 'UnityEngine.SceneManagement' namespace zu inkludieren ^^ ) Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
acidrain83 Geschrieben 27. Juni 2018 Autor Melden Share Geschrieben 27. Juni 2018 woow danke für die tolle antwort werde es mir gleich ansehen. aber zuvor hab ich noch ne kleine frage und zwar habe ich ein prefab aus mehreren cubes und spheres erstellt und ich wollte eigentlich das man dieses objekt erst sieht wenn man einen bestimmten cube der als trigger gekennzeichnet ist berührt. das problem jetzt ist aber das das prefab selbst keinen mesh renderer hat....sondern nur wenn ich das dropdown menü benutze und die einzelnen teile ansehe . und ich will nicht jeden einzelnen teil das skript zuweisen müssen. das muss doch gehn das ich es nur dem prefab zuweise.......oder nicht? muss es mal probieren. aber wäre über tipps und hilfe dankbar.mfg Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Mr 3d Geschrieben 27. Juni 2018 Melden Share Geschrieben 27. Juni 2018 Du kannst mit 'GetComponentsInChildren<T>()' eine Referenz zu allen Renderern der Kinderobjekte bekommen https://docs.unity3d.com/ScriptReference/Component.GetComponentsInChildren.html Und die dann aktivieren/ deaktivieren. Renderer[] renderers; private void Awake(){ renderers = GetComponentsInChildren<Renderer>(); setVisibility(false); } private void setVisibility(bool visible){ foreach(Renderer renderer in renderers) renderer.enabled = visible; } } Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
acidrain83 Geschrieben 27. Juni 2018 Autor Melden Share Geschrieben 27. Juni 2018 ok danke erstmal aber ganz komme ich da nicht mit also so gehts mal nicht var object : GameObject; function Start () { object = GameObject.Find("auswahldurchgang"); // ist das prefab mit allen kleinen teilen } function Update () { } function OnTriggerEnter(){ object.GetComponentsInChildren.<Renderer>().setVisibility = true; //Hier will ich es einschalten weil ich alle teile per hand im inspector ausgeschaltet habe (Mesh Renderer) } kannst du mir das noch besser erklären?bitte und es muss javascript sein bitte. thx und noch was wie kann ich ein objekt mit einem timer alle 5 sekunden ein oder ausblenden lassen.also ich hab das skript von oben nochmal bearbeitet weil es eigentlich nicht mehr um trigger geht.... hier: #pragma strict var object : GameObject; var timer : float = 0; var count : int = 0; var change: int = 5; function Start () { object = GameObject.Find("falle"); } function Update () { timer = Time.time; count = timer; Debug.Log(count); if (count == change) { object.GetComponent.<Renderer>().enabled = !object.GetComponent.<Renderer>().enabled; } } aber jetzt wird es natürlich nur einmal geändert wenn genau 5 sekunden vergangen sind..und danach nicht mehr.... ich will aber natürlich das es sich alle 5 sekunden ändert.. sorry bin noch nicht lange mit unity vertraut deshalb seit bitte nicht zu streng mit mir Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
acidrain83 Geschrieben 19. Juli 2018 Autor Melden Share Geschrieben 19. Juli 2018 kann mir da jemand helfen...ich hab keine ahnung wie ich es hinbekommen kann das es sich alle 5 sekunden ändert Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 19. Juli 2018 Melden Share Geschrieben 19. Juli 2018 Am 27.6.2018 um 18:48 schrieb acidrain83: aber jetzt wird es natürlich nur einmal geändert wenn genau 5 sekunden vergangen sind..und danach nicht mehr.... Wie dir im anderen Thread schon gesagt wurde: Benutz nicht Time.time für so etwas. private var timer : float = 0; var interval : float = 5; function Update() { timer += Time.deltaTime; while (timer >= interval) { timer -= interval; // do stuff here } } 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.