Jump to content
Unity Insider Forum

texttafel anzeigen lassen


acidrain83

Recommended Posts

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

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

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

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

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

  • 3 weeks later...
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

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...