Jump to content
Unity Insider Forum

Jog

Members
  • Posts

    195
  • Joined

  • Last visited

  • Days Won

    9

Jog last won the day on July 17 2021

Jog had the most liked content!

Profile Information

  • Gender
    Male
  • Location
    Saarland (Ich weiß nur, dass ich nichts weiß, aber das weiß ich ganz genau! ))
  • Interests
    Programmieren, Modellieren, Musik machen

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Jog's Achievements

Advanced Member

Advanced Member (3/3)

32

Reputation

  1. Hallo, Sieht gut aus.👍 Gruß Jog
  2. Hallo, Auch von mir ein Willkommen und viel Spaß mit Unity! 🙂 Gruß Jog
  3. Hallo, @malzbie Da stimme ich dir voll und ganz zu. Es sollte ja nur ein Anstoß sein, um sich mit der Thematik auseinander zu setzen, wann man eine null Abfrage machen sollte. z.b. Wenn ein GameObject auf ein anderes GameObject zugreift. (Es könnte ja in der Zwischenzeit z. b. mit Destroy() zerstört worden sein) Gruß Jog
  4. Hallo, Wie " malzbie " schon erwähnt hat, hast du wahrscheinlich vergessen im Inspector per Drag and Drop das Text-Object zuzuweisen. Da man dieses gerne mal vergisst mach es Sinn dieses im Code zu überprüfen. Hab deinen Code als Beispiel mal mit einer Abfrage erweitert, vorausgesetzt die Text - Componente ist auch vorhanden. using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class PlayerOtherFunctions : MonoBehaviour { public float roundTimer; public Text levelCounterText; private float levelCounterFloat; // Start is called before the first frame update void Start() { roundTimer = 100f; if (levelCounterText == null) // Wenn nicht "null" alls gut, wenn "null" dann weise die Text-Componente zu. { levelCounterText = GetComponent<Text>(); // die Text-Componenete zuweisen, levelCounterText ist jetzt nicht mehr "null" } } private void Update() { roundTimer = roundTimer - Time.deltaTime; levelCounterFloat = 100f - roundTimer; levelCounterText.text = levelCounterFloat.ToString() + " %"; // gibt den String mit allen Nachkommastellen aus //levelCounterText.text = levelCounterFloat.ToString("0.0") + " %";// <=ausgabe mit 1 Nachkommastelle,ohne Nachkommastelle ToString("0") } } Gruß Jog
  5. Hallo, Auch von mir ein willkommen und viel Spaß! Gruß Jog
  6. Hallo, Danke für den Hinweis.🙂 Gruß Jog
  7. Hallo, @malzbie Schöner Trailer, macht Lust auf mehr .👍 Da ich dein Spiel schon getestet habe, freue ich mich schon auf die Vollversion. Gutes gelingen für den Termin der Veröffentlichung. Gruß Jog
  8. Hallo, Hast du daran gedacht dass, entweder beim Rigidbody der Is Kinematic Parameter, oder beim MeshCollider der Is Convex Parameter aktiviert sein muss um mit der OnTriggerEnter( ) Methode zu interagieren. Vorausgesetzt Rigidbody und MeshCollider liegen als Component auf dem selben GameObject. Gruß Jog
  9. Hallo, gameObject.tag == "Player" , ist ein String vergleich und gibt True oder False zurück .Dementsprechend kann man auch keinen Transform zuweisen. 2 Sachen die man mal gerne vergisst. 1. Hat dein Player auch einen Rigidbody ?, ohne Rigidbody keine Collisions Erkennung. 2. Du benutzt die OnTriggerEnter( ) Methode. Haben alle bei der Collision beteiligten Collider auch den IsTrigger Parameter Aktiviert?. Gruß Jog
  10. Hallo, In dem du es Programmierst.🙂 1.Die Fragenstellung ist mal wieder genial🙄. Infos wie z.b. Was hast du schon Programmiert, was funktioniert nicht, welche Fehlermeldungen erscheinen u.s.w., wehren sehr hilfreich . Ansonsten fischt man in trüben. Oder man hat den Verdacht, Schreib mir mal einen Code den ich gebrauchen kann.( Ist nicht Böse gemeint ) 2. Du solltest dich mal mit der Komponenten Programmierung in Unity auseinandersetzen, diese gehört zu den wichtigsten Basics in der Programmierung von Unity. Hier mal ein Beispiel zu deiner Frage. using System.Collections; using System.Collections.Generic; using UnityEngine; public class MySorting : MonoBehaviour { private SpriteRenderer mySpRenderer;// Eine Variable vom Type SpriteRenderer erstellen private int myLayer { get; set; } // Eine int Variable erstellen für den Layerwert // Start is called before the first frame update void Start() { myLayer = 9;// Layer auf den Wert 9 setzen mySpRenderer = GetComponent<SpriteRenderer>();// Die Komponente SpriteRenderer übergeben } // Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.W)) // Ist die Taste w gedrückt? { mySpRenderer.sortingOrder = myLayer; //Setze den Order in Layer auf den Wert myLayer } } } Als Hausaufgabe kannst du mal probieren eine Abfrage zu Programmieren die den Layerwert wieder auf 11 zurücksetzt wenn der Wert 9 nicht mehr gebraucht wird. Gruß Jog
  11. Hallo, Eine Idee hätte ich noch, wenn das nichts nutzt ergebe ich mich😉. Geh mal oben in der Menüleiste auf: Edit -> Shortcuts, wähle dort -> 3D Viewport aus und schau mal welche Tasten dort hinterlegt sind. Das sind die Tasten, die für den Flythrough Modus definiert sind, diese kann man dort auch selbst festlegen. Wenn dort nichts eingetragen ist geht auch nichts beziehungsweise, nur die Tasten die dort eingetragen sind. Gruß Jog
  12. Hallo, Mhhhh Seltsam, müsste aber funktionieren habe es gerade mit den Version 2019.4, 2020.3, 2021.3 getestet geht makellos. Wie gesagt funktioniert nur im perspektivischen Modus, aber nicht im 2d Modus und die (Pfeiltasten) funktionieren sowieso nicht. Nur die W A S D Q E Tasten. Wen du die Tasten W A S D Q E benutzt musst du auch weiterhin die Rechte Maustaste im Screen View Gedrückt halten, sonst Funzt es auch nicht. Wenn die max Kamera Geschwindigkeit in den Settings mit 0.001 eingestellt ist und du ein sehr großes Level hast, sieht man die Bewegung fast nicht. Sonst kann ich mir auch keinen Reim darauf machen. Gruß Jog
  13. Hallo, Die Setting for the Scene View Camera sind für den Flythrough mode in der Scene View gedacht. Flythrough mode ‎Verwende den ‎‎Flythrough-Modus‎ (In der Scene View die rechte Maustaste gedrückt halten) ‎Um in der Szenenansicht in der ersten Person herumzufliegen, ähnlich wie du in vielen Spielen navigieren würdest. ‎Klicke mit der rechten Maustaste und halten Sie sie gedrückt.‎ Verwende die Maus, um die Ansicht zu verschieben, die ‎‎WASD-Tasten‎‎, um sich nach links / rechts / vorwärts / rückwärts zu bewegen, und die ‎‎Tasten Q‎‎ und ‎‎E‎‎, um nach oben und unten zu gelangen.‎ Halten Sie ‎‎die Umschalttaste‎‎ gedrückt, um sich schneller zu bewegen.‎ ‎Der Flythrough-Modus ist für ‎‎den perspektivischen Modus‎‎ konzipiert. Wenn du im ‎‎orthographischen Modus‎‎ die rechte Maustaste gedrückt hältst und die Maus bewegst, wird stattdessen die Kamera umkreist.‎ ‎Beachte, dass der Flythrough-Modus im 2D-Modus nicht verfügbar ist. Wenn du stattdessen die rechte Maustaste gedrückt hältst während du die Maus bewegest, schwenkst du um die Szenenansicht.‎ ‎Kamerageschwindigkeit‎: ‎ ‎Im ‎‎Flythrough-Modus‎‎ kannst du die Kamerageschwindigkeit ändern, indem du die rechte Maustaste gedrückt hältst und das Mausrad drehst. Damit kannst du stufenlos zwischen den Min und Max werten für die Kamerageschwindigkeit die du dort eingestellt hast auswählen. Hoffe das hilft dir weiter. Gruß Jog
  14. Hallo, In dem ich den Wert z.b. in einer Funktion auswerte. void AuswertFunktion() { farb = tex.GetPixel(x,y); if (farb.a == 0 ) // Alphawert =0 { // Halte die Bewegung an } } Soviel zur Theorie . Dann kahm die Praxis 🙄 Habe das heute mal ausprobiert. Ist sehr kompliziert und Aufwendig dies zu Programmieren (Welt Koordinaten in Pixel Koordinaten umzurechnen usw.) Und beim testen Bäumte sich mein PC auf und viel Tot um.😉 ( Brach auf 8 fps ein ) wahren wohl ein paar Pixelberechnungen zu viel. Aber es hat funktioniert .😁 Also ist dieser Weg leider nicht dafür geeignet. Gruß Jog
  15. Hallo, Du könntest z.b. deinen Border in einer neuen Ebene einzeichnen z.b. Schwarz für nicht begehbar wie ein Alphakanal, und ein neues Bild daraus erstellen. Das Bild legst du dann genau über das Original und schaltest den Sprite Renderer aus, das Bild wird zwar nicht mehr gerendert, aber mit Texture2D.GetPixel kannst du den Farbwert an der X,Y Koordinate auslesen und Color32 übergeben. Ist der Farbwert an der Koordinate z.b. Schwartz dann bleib stehen. Wichtig ist das bei Import Settings Read/Write Enabeld aktiviert ist sonst sonst kannst du das Bild in Unity nicht bearbeiten. Hier mal zur Veranschaulichung ein kleines Script das den Farbwert in der Konsole ausgibt. using System.Collections; using System.Collections.Generic; using UnityEngine; public class Pixel : MonoBehaviour { public Texture2D tex; public Color32 farb; // Start is called before the first frame update void Start() { farb = tex.GetPixel(0, 10); Debug.Log(farb); } // Update is called once per frame void Update() { } } Gruß Jog
×
×
  • Create New...