Jump to content
Unity Insider Forum

All Activity

This stream auto-updates     

  1. Past hour
  2. Danke­č嬭čÖĆ­čÖî
  3. Today
  4. Velocity setzen kannst du durchaus in Update. Das Problem ist, dass du einfach nur schaust, ob ein Finger auf dem Display ist. Kannst einfach gedr├╝ckt halten, dann springst fliegst du ewig weiter. Das Problem l├Âst du, indem du schaust, ob du ├╝berhaupt auf dem Boden stehst. Nur dann sollte man springen k├Ânnen.
  5. Moin, Ich arbeite grad an einem Android Spiel. Habe ein einfaches Jumpsystem hinzugef├╝gt, aber als ich es testete war es auf meinem Handy nicht wie auf meinem Pc. Und zwar Sprang der Charakter viel h├Âher. Wei├č jemand wie man dieses Problem l├Âsen kann? Der Code: void Update() { if (Input.GetButtonDown("Fire1") || Input.touchCount > 0) { rb.velocity = new Vector2(jumpLeft, 1 * jumpforce); } } Hab es schon in fixed update gamcht, aber dann reagiert er teilweise nicht, was aber extrem wichtig ist. Schonmal vielen Dank.
  6. Yesterday
  7. Bradley

    Space Opera

    Der erste Testlauf einer Kartengenerierung mit PerlinNoise ist erfolgreich abgeschlossen. Etwas mehr fein Tuning beim Algorithmus und mehr als 3 Kartenfeldtypen sollten es aber schon sein sonst ist das nicht sehr ansehnlich. Aber immerhin, es funktioniert und geht ins n├Ąchste NightlyBuild.
  8. Wenn es nicht da liegen soll und dann wohl auch nicht liegt, dann kannst du in der Start auch nicht ├╝ber gameObjct.GetComponent<> versuchen eine Referenz zu bilden. Verstehst du das? gameObject ist das GameObject auf dem das Script liegt. Also quasi der Vatter! Hat dieses GameObject kein Textmesh, kann es auch nicht mit GetComponent gefunden werden, denn es ist ja keine Textmesh Komponente auf dem Gameobject. Und weil das so ist, wird deine Variable nach dem Versuch null sein! Egal ob sie vorher eine Referent zum Textmesh hatte. Leg einfach dein Textmesh im Inspector auf den Slot vom Script und nimm die Zeile in der Start raus. Schon wird's gehen.
  9. Ja genau das ist mein Problem. Das Script soll nicht auf dem Gameobject liegen Die Exception wird durch diese Zeile ausgel├Âst (h├Ątte ich dazu schreiben sollen) : WaveNummer.text= "Wave" + I_nextWave;
  10. Deine Fehlermeldung bedeutet IMMER dass auf etwas zugegriffen werden soll was aber nicht bekannt ist. Unity schmei├čt dir immer auch die Zeile im Code raus, wo dieser Zugriff stattfindet. Da kann man also leicht erkennen, um welches Objekt oder Komponente es sich handelt. Wenn dein Codebeispiel nur dieses TextMeshProGUI ansprechen will, dann ist es dieses auch. Komisch ist jetzt an deinem Beispiel, dass du oben ja eine public Variable bildest, wo du ├╝ber den Inspector einfach das Textmesh rein legen k├Ânntest. In der Start Methode versuchst du aber dann eine Referenz zu bilden, indem du davon aus gehst, dass das Textmesh genau auf diesem GameObject liegt, wo auch dieses Script liegt. Aber da wird es wohl nicht liegen. Ja und selbst wenn du via Inspector das Textmesh der Variable zugewiesen hast, es aber nicht auf diesem GO liegt, w├╝rdest du in der Start die Variable WaveNumber ├╝berschreiben. Und zwar mit "null". WaveNummer h├Ątte jetzt also keine Referenz und deswegen kommt der Fehler. Fazit: Dein Textmesh und dein Script liegen nicht auf dem gleichen GameObject!
  11. Last week
  12. Hall├Âchen Liebes UnityForum, ich habe ein Problemchen mit TextMeshPro.Unzwar m├Âchte ich das UI Text Element von TextMeshPro in einem Script benutzen das meine Wellen an Gegner z├Ąhlt und an einem Gameobject gebunden ist.Nun habe ich schon das gef├╝hlt halbe Internet durchforstet und habe nichts gefunden um das Problem zu l├Âsen. Vielleicht k├Ânnt ihr mir ja helfen . Ist wahrscheinlich etwas komplett Banales. public TextMeshProUGUI WaveNummer; private void Start() { F_waveCountdown = F_timeBetweenWaves; WaveNummer = gameObject.GetComponent<TextMeshProUGUI>(); } void Update() { WaveNummer.text= "Wave" + I_nextWave; Das ist der relevante Code. Ich habe nat├╝rlich das package TMPro implementiert.
  13. Sascha

    Daten zwischen Spielern austauschen

    Diese Frage ist viel zu unspezifisch. "Daten austauschen" kann alles sein von Highscores bis zu Echtzeit-Multiplayer ├╝ber Internet. Da du dir den NetworkManager angeschaut hast, nehme ich an, du willst Multiplayer ├╝ber Internet haben. Da hat Unity selbst im Moment nur UNet, das, wie du richtig festgestellt hast, nicht mehr weiterentwickelt wird. Unity arbeitet an einem neuen System, aber keine Ahnung, ab wann das was taugt. Ansonsten gibt's nen Haufen Plugins... Photon, Bolt, wie sie nicht alle hei├čen. Die haben alle so ihre Vor- und Nachteile, und nat├╝rlich haben die so ihre Modelle, wie sie Geld verdienen. Wenn du allerdings selber den Server hostest, kannst du auf deren Clouds verzichten. Das hilft schon einmal preislich.
  14. Hallo Forum, wie kann man eigentlich Daten zwischen den Spielern/Benutzern des Unity Spiels austauschen(kostenlos)? Network Manager funktioniert bei mir nicht und soll laut Manual sowieso bald entfernt werden.
  15. Hallo. Vor einiger Zeit habe ich ein Spiel in Unity Erschauen welches Zuf├Ąllig Kisten auf einer Gro├čen Karte Spawnt diese kann man einsammeln und erh├Ąlt daf├╝r seine Belohnungen. wenn man nun diese Kisten eingesammelt hat sind sie weg und Spawnen nach einem 3 Minuten Counter wieder neu auf der Karte. Nun ist das Problem wenn ich die App einfach neustarte die Kisten sofort wieder da sind und man denn 3 Minuten Countdown einfach ├╝berspringen kann. Gibt es eine M├Âglichkeit in meine PickUpChest klasse die eingesammelte Kiste abzuspeichern und sollange sie abgespiechert ist nichtmehr erscheint und dieses wieder mit meinem 3 Minuten Countdown zu reseten. Also z.b in der PickupChest Klasse beim einsammeln Abspeichern mit dem Countdown die Abspeicherung l├Âschen und wahrscheinlich brauche ich noch eine Start klasse die Abfragt ob die Kisten momentan gespeichert ist oder nicht. using UnityEngine; public class PickupCoins : MonoBehaviour { private void OnMouseDown() { var Cs = GameObject.Find("Main Camera").GetComponent<Cs>(); Cs.IncreaseLevel(); Destroy(gameObject); //Zum Beispiel Objekt abspeichern } } using System.Collections; using System.Collections.Generic; using UnityEditor; using UnityEngine; using UnityEngine.UI; public class UpdateTime : MonoBehaviour { float currentTime = 0f; float startingTime = 180f; [SerializeField] Text countdownText; void Start() { currentTime = startingTime; } void Update() { currentTime -= 1 * Time.deltaTime; countdownText.text = currentTime.ToString(); if (currentTime <= 0) { currentTime = 0; currentTime = startingTime; Application.LoadLevel(1); //Bissher daf├╝r gedacht die Sceene einfach neuzustarten da die Objekte dann resetet werden //Reseten von Objekt } } } ├╝ber eine Antwort w├╝rde ich mich Freunen.
  16. Hallo. Zun├Ąchst vielen Dank f├╝r deine Hilfe. Dass es nur auf dem Tablet nicht funktioniert verwundert mich ja am meisten. Im Editor erhielt ich keine Fehlermeldungen. Ich habe zus├Ątzlich zu dem Bluestacks-Emulator noch den von Google benutzt, auch dort funktioniert es. Au├čerdem installierte ich eine LTS-Version von Unity. Bevor ich deine Antwort las bin ich auch darauf gekommen, Raycast durch Physics2D.OverlapBoxAll zu ersetzen. Jetzt funktioniert es auch auf dem echten Ger├Ąt. Endlich. Es wird wohl so sein, dass ich den Rigidbody falsch einsetze oder ich mir etwas anderes davon versprach. Du hast mir hier einige Anregungen gegeben, ich werde mir das alles in Ruhe anschauen. Danke sehr.
  17. Bradley

    Space Opera

    Space Opera | Phase 0 Einer meiner vielen Fehler bei der Entwicklung von Space Opera ist sicherlich das es keinen wirklichen Grund gab das ganze ├╝berhaupt zu spielen. Ich versuche jetzt diesen Kritik Punkt zu l├Âsen in dem ich quasi zum ersten Mal etwas Story mit rein bringen. Der Spieler erh├Ąlt also e nach diesem Hinweis aus dem Freundeskreis, habe ich etwas versucht dagegen zu unternehmen. In Form eines Dialoge ÔÇô ebenfalls etwas neues ÔÇô gibt man den Spieler ein Ziel zu dem er fliegen soll. Der noch unfertige Dialog kann bereits auf dem Nightlybuild getestet werden. Sobald alle Ziele der Phase 0 abgeschlossen sind, wird auch ein Release f├╝r Win64 erzeugt. Dank Unity w├Ąre auch Mac und Linux denkbar wenn das jemand w├╝nscht. Nightlybuild: http://www.bradley-labs.de/download/SO/index.html Ziele: http://bradley-labs.de/ziele/
  18. Schon seltsam, dass es auf dem Pad nicht geht... Bekommst du vielleicht eine Meldung in der Console, wnn du das Spiel im Editor testest? Wenn ja, dann k├Ânnte das der Unterschied sein, denn im Editor funktioniert vieles noch, obwohl es Fehler gibt. Im Build geht's dann meist nicht und kann sogar zum Abbruch f├╝hren. Wenn du keine Meldung siehst, sollte ja alles in Ordnung sein und dann wei├č ich echt nicht weiter. K├Ânnte ja auch ein Bug in Unity sein. Dass ein RB nat├╝rlich einen anderen RB verschiebt oder eben an einem Collider h├Ąngen bleibt, ist klar denn das soll er ja auch tun. Wenn du jetzt auf mehreren Objekten RB's drauf hast, die sich nicht beeinflussen sollen, dann empfehle ich dir die Kollision ├╝ber Layer zu steuern. Du kannst dann in der Layer Colission Matrix einstellen, welche Layer kollidieren d├╝rfen und welche nicht. So k├Ânnte in deinem Spiel der Player (der hat ja bestimmt einen RB) dem Layer "Player" zugewiesen sein. Aufnehmbare Dinge, wie z.B. M├╝nzen, die von Oben runter fallen, h├Ątten dann den Layer "Loot". Jetzt stellst du in der Matrix ein, dass diese beiden Layer (Loot und Player) eben nicht kollidieren d├╝rfen. Daf├╝r nimmst du am entsprechenden Schnittpunkt einfach den Haken raus. Das Loot w├╝rde jetzt mit allen Dingen ausser dem Player kollidieren. https://docs.unity3d.com/Manual/LayerBasedCollision.html Im Script kannst du aber immer noch gegen diesen Loot Layer testen, denn eigentlich haben alle Physics Funktionen auch einen Parameter, mit dem du auf Layer testen kannst. Bei 3D heisst das evtl. anders als bei 3D, aber es ist alles sehr ├Ąhnlich. F├╝rs Auswerten bietet sich OverlapCircle an, weil dann hast du einen gewissen Radius und nicht nur einen Punkt im Raum. https://docs.unity3d.com/ScriptReference/Physics2D.OverlapCircle.html Den n├Âtige Parameter ist : https://docs.unity3d.com/ScriptReference/ContactFilter2D.html
  19. Sascha

    Collider buggt sich durch Terrain

    N├Â, machen wir bei uns nicht.
  20. KaBau

    Collider buggt sich durch Terrain

    Zum Thema der verschiedenen Bewegungsm├Âglichkeiten hat @malzbie ein tolles Video erstellt: Ist zwar schon etwas ├Ąlter, aber im Grunde noch immer aktuell. Hier wird auch auf das eingegangen, was @Sascha oben zu den RB geschrieben hat.
  21. Slayer

    Neues Terrainhandling?

    Aha okay. Ich mag ein gro├čes Terrain weniger da ich finde das man da zu wenig ins feine mehr gehen kann. Mehr als 2000 w├╝rde ich daher nicht machen. Alles drum herum w├╝rde ich nachladen. Ich gestallten mir meist eine heightmap f├╝r die komplette map. Diese Teile ich dann in die terrainanzahl auf und importiere diese dann. So habe ich einen Grundstock. Ich lasse dann auch immer nur die Terrains in der scene die ich gerade bearbeite. Im Spiel ├╝berpr├╝fe ich immer die character position. Dann kann ich immer das Terrain auf dem er sich befindet + die darum herum laden. Alles andere braucht man nicht. Genauso auch dann Objekte. So kann man recht gro├če maps erstellen. Die Arbeit ist diese dann nat├╝rlich zu gestallten. Es gibt zwar daf├╝r Terrain Tools, aber meist spiele ich da Manuel herum.
  22. Peanut

    flugbahn berechnen 2D

    Ich denke man muss nur diese Zeile anpassen(wie du ja selbst schon vermutet hast) : y1 = ballPos.y + shotForce.y * Time.fixedDeltaTime * (dotSeparation * k + dotShift) - (-Physics2D.gravity.y / 2f * Time.fixedDeltaTime * Time.fixedDeltaTime * (dotSeparation * k + dotShift) * ( Hast du die Zeile selber geschrieben? Weil Time.deltaTime*Time.deltaTime macht f├╝r mich irgendwie wie keinen Sinn :P(falls dus erkl├Ąren kannst) Ich glaube du musst in der for Schleife mit einem If-Statement unterscheiden ob der Ball prositive rb2d.velocity.y hat oder eine negative und jenachdem welcher Fall eintritt du die yAxis der Dots anders berechnen musst.
  23. Timbo3

    Collider buggt sich durch Terrain

    Ok danke. Kann man Themen auch irgendwie als gel├Âst markieren?
  24. Peanut

    Neues Terrainhandling?

    Hab noch nix davon geh├Ârt das es sowas Unity intern gibt. Warum benutzt du den mehrere Terrains? Kannst du nicht ein Riesiges machen? Wie gehst du den damit um? LG Peanut
  25. Peanut

    Collider buggt sich durch Terrain

    Btw kannst du statt immer Input.GetKey(w), Input.GetKey(s) etc. zu benutzen einfach mit Input.GetAxis(""Vertical") und das selbe f├╝r Horizontal. Finde so wird der Code viel ├╝bersichtlicher und es geht beim zweiten mal schneller. Kannst es ja mal nachlesen wen du willst https://docs.unity3d.com/ScriptReference/Input.GetAxis.html Gibt auch genug Youtube Tutorials daf├╝r.
  26. Hallo, >>... nie genau auf der selben Position ...<< Sehr guter Vorschlag, obwohl naheliegend, w├Ąre ich darauf nicht gekommen. Ich habe den Raycast ohne L├Ąngenangabe durchf├╝hren lassen. Ich habe den Boxcollider des Loot-Objekts extrem vergr├Â├čert. Ich habe nochmals die Positionierung der Objekte ├╝berpr├╝ft. Als Kontrollinstrument habe ich mir vom laufenden Programm die Positionen der Objekte ausgeben lassen, sie befinden sich alle auf den ihnen zugedachten. Und es funktioniert auf dem Tablet immer noch nicht, sonst ├╝berall. Die Kollision mit den Enemy-Objekt findet statt, nur bei den Loot-Elementen nicht. Hast du noch eine Idee, woran es scheitern k├Ânnte? Ich habe Probleme mit dem Rigidbody, deshalb teste ich es jetzt mal ohne. Beim Rigidbody verschiebt sich mein Objekt immer bei Kontakt mit anderen. Ich weiss nicht, wie ich das in den Griff bekommen kann, ich finde dazu auch nichts im Netz. Vielleicht hast du ja eine Anregung dazu, einzelne Stichworte w├╝rden eventuell schon helfen. Danke.
  27. Sascha

    Collider buggt sich durch Terrain

    Nein. Zum einen ist das wie gesagt nur die letzte Variante, wenn alle anderen wirklich nicht in deiner spezifischen Situation funktionieren, weil alle drei ganz hervorragend sind. Zum anderen ist der Kern von Variante 4, dass es da eben nicht "den Weg" gibt, wie man das macht, sondern man eben eine ganz eigene L├Âsung baut. Die Basis ist, sofern man bei der Standard-Physik-Engine bleibt, die Physics- (bzw. die Physics2D-)Klasse. Aber ab da wird jede Anleitung sinnlos, weil es hier im Kern um eine ma├čgeschneiderte L├Âsung geht.
  28. Timbo3

    Collider buggt sich durch Terrain

    Wieder was gelernt­čśü Vielen Dank Sascha Hast du mir einen Link wo ich das 4. nachlesen kann?
  1. Load more activity

Announcements

Hy, wir programmieren f├╝r dich Apps(Android & iOS):

Weiterleitung zum Entwickler "daubit"



×