Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Nico Lehwald

Frischling

  • »Nico Lehwald« ist der Autor dieses Themas

Beiträge: 10

Wohnort: Darmstadt

  • Private Nachricht senden

1

19.05.2016, 00:56

[C# - Script / Unity] Einen Text ausgeben lassen, auf dem Bildschrim

Guten Morgen,

ich stehe gerade ein wenig auf dem Schlauch.
Vielleicht kann mir jemand kurz helfen.

Ich wollte durch das Drücken von Pausen Taste einen Text einblenden lassen, wo drin steht **Pause**. Wenn der Spieler ,die Taste wieder drückt, das dieser Text entfernt.

Er sollte auch Farblich veränderbar sein, aber von mir. :)

Hoffe, das jemand mir da helfen kann.

Grüße
Nico

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

2

19.05.2016, 01:13

Mach ne Bool-Variable, wenn deine Taste gedrückt wird wird die auf true gesetzt, wird die Taste noch mal gedrückt dann eben wieder auf false.
In onGui kannst du dann den Wert der Variablen abfragen und im passenden Fall deine Anzeige machen.
Einziges Problem was du dann also noch lösen musst ist wie du abfragst ob eine Taste geklickt sodass du nicht kontinuierlich in jedem Frame den Wert wechselst solange die Taste gehalten wird. Das raus zu finden überlasse ich dir.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Nico Lehwald

Frischling

  • »Nico Lehwald« ist der Autor dieses Themas

Beiträge: 10

Wohnort: Darmstadt

  • Private Nachricht senden

3

19.05.2016, 01:41

Hallo,

also ich dachte, ich könnte damit was machen, es läuft auch ohne Probleme, nur zeigt er kein Text an, vielleicht magst du mir den Fehler aufweisen?

C#-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using UnityEngine;
using System.Collections;

public class Pause : MonoBehaviour {

    private bool isPause = false;

    void Start() {
        
    }

    void Update () {
        if (Input.GetKeyDown (KeyCode.Pause))
            ToggleTimeScale ();
    }

    void ToggleTimeScale()
    {
        if (isPause)
        {
            Time.timeScale = 0;
        }
        else 
        {
            Time.timeScale = 1;
        }
        isPause = !isPause;
        GUI.Label(new Rect (10,10,100,20), "**Pause**");
}
}

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Nico Lehwald« (19.05.2016, 02:04)


Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

4

19.05.2016, 10:21

In onGui kannst du dann den Wert der Variablen abfragen und im passenden Fall deine Anzeige machen.

http://docs.unity3d.com/ScriptReference/…iour.OnGUI.html
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

5

19.05.2016, 11:37

Für den Anfang kann Die Vorgehensweise mit OnGUI verwendet werden, auf Dauer wäre es aber besser, auf das neue UI System vom Unity umzusteigen, da dort auch bspw. Mittel für's Layouting mitgeliefert werden. Dort sähe es dann so aus, dass man nur ein GameObject aktivieren bzw. deaktivieren muss.

Abgesehen davon gibt es noch 3D Text und Plugins für UI, mit denen ebenfalls Text angezeigt werden kann. 3D Text sollte aber nur dann verwendet werden, wenn man Text in der Welt platzieren will (wobei auch dann das neue UI System vielleicht schon besser geeignet sein könnte) und UI Plugins müssten schon irgendeinen großen Vorteil gegenüber dem neuen UI System in Unity bieten, damit diese sich lohnen würden.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

6

19.05.2016, 11:50

Das neue UI ist dafür sicher weit besser geeignet.
Man erstelle ein gameobject dafür und kann dieses auch für andere Texte nutzen.
Zusätzlich kannst du auch ein script drauflegen, welches Animationen o.Ä. mitliefert.
Und wenn mal Geld über hat, kauft man sich TextMeshPro und verzichtet auf Unity's verschwommene Texte :)

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

7

19.05.2016, 14:12

Das neue Gui System ist sicherlich besser. Aber auch viel komplexer und von daher würde ich als Anfänger vielleicht erst mal mit den onGui Geschichten anfangen. Dann hast du es zumindest schon mal lauffähig.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

8

19.05.2016, 15:00

Ja, um einfach schnell ein paar Texte auszugeben, kann man das durchaus verwenden. (Entsprechend würde ich ventrix in so weit widersprechen, dass es, wie ich schrieb, auf Dauer durchaus besser geeignet ist, aber nicht zwingend am Anfang.)
Man könnte sich behelfsweise aber auch auf die "Debug"-Ausgaben beschränken und dort ggf. die Ausgabe "collapsen". Allerdings gehen die OnGUI-Ausgaben da doch schon eher in eine Richtung, wie man sie am Ende auch in einem Spiel haben wollen würde.

Ich kann aber nur empfehlen, das Aneignen der neuen UI-Features nicht zu lange aufzuschieben.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Nico Lehwald

Frischling

  • »Nico Lehwald« ist der Autor dieses Themas

Beiträge: 10

Wohnort: Darmstadt

  • Private Nachricht senden

9

19.05.2016, 22:20

Vielen Dank.
Hat sich schon erledigt. :)

Grüße

Werbeanzeige