Jump to content
Unity Insider Forum

Thanny08

Members
  • Posts

    24
  • Joined

  • Last visited

Thanny08's Achievements

Member

Member (2/3)

0

Reputation

  1. Moin moin! ich bin auf ein kleines Problem gestoßen: und zwar möchte ich für jede Sekunde die abläuft 1% In einem Textfeld immer steigend ausgeben lassen. Hier ist mein bisheriges Script: 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; } private void Update() { roundTimer = roundTimer - Time.deltaTime; levelCounterFloat = 100 - roundTimer; levelCounterText.text = levelCounterFloat.ToString() + "%"; } mein Textfeld bleibt unverändert und ich bekomme diese Fehlermeldungen(Anhang) Vieleicht hat ja jmd eine idee was ich falsch gemacht habe, oder wie ich es besser machen könnte. LG
  2. Also erstmal vielen Dank für die schnelle und ausführliche Antwort! Ich habe das Problem jetzt mit einer statischen Variablen gelöst. Vielen vielen Dank das du mich darauf gebracht hast und das jetzt alles reibungslos funktioniert. Ich bin am überlegen ob ich mir dein Paket hole, muss aber nochmal schauen... Vielen Dank!😃 Schönen Abend!!
  3. Hallo Zusammen! Ich habe eine Frage: Und zwar wie kann man Den Highscore den man in der GameScene erzielt hat, über ein Textfeld in eine andere Scene, in meinem Fall mein MainMenu, übergeben? In diese leere Feld möchte ich quasi den Text aus einer anderen Scene einfügen.(Siehe Anhang) Für Hilfe wäre ich sehr Dankbar!! LG
  4. Vielen Dank für deine schnelle Antwort! Ja tatslächlich war es nur ein Fehler in der Namensgebung obwohl ich eigendlich sehr sicher war dort nichts übersehen zu haben. Danke das du mich nochmal darauf hingewiesen hast!
  5. Hi, also ich habe ein menu gemacht wo man verschiedene Player auswählen können soll. Jetzt habe ich jedoch ein Problem bnei dem ich hängengeblieben bin. Ich habe ein Database für meine aktuell 2 Player im Script gemacht und dann über Rechtsklick Create , Charakter Database meine Database gemacht. Nun bekomme ich diese Fehlermeldung: ,,Type cannot be found: CharakterDatabase. Containing file and class name must match." Weiß jemand warum diese Fehlermeldung auftaucht?? Hier noch meine Scripts die ich dazu nutze: 1. using System.Collections; using System.Collections.Generic; using UnityEngine; [System.Serializable] public class Player { public string characterName; public Sprite characterSprite; } 2. using System.Collections; using System.Collections.Generic; using UnityEngine; [CreateAssetMenu] public class CharacterDatabase : ScriptableObject { public Character[] character; public int CharacterCount { get { return character.Length; } } public Character GetCharacter(int index) { return character[index]; } } 3. using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class CharacterManager : MonoBehaviour { public CharacterDatabase characterDB; public Text nameText; public SpriteRenderer artworkSprite; private int selectedOption = 0; // Start is called before the first frame update void Start() { UpdateCharacter ( selectedOption); } public void NextOption() { selectedOption++; if(selectedOption>= characterDB.CharacterCount) { selectedOption = 0; } UpdateCharacter(selectedOption); } public void BackOption() { selectedOption--; if (selectedOption < 0) { selectedOption = characterDB.CharacterCount - 1; } UpdateCharacter(selectedOption); } private void UpdateCharacter(int selectedOption) { Character character = characterDB.GetCharacter(selectedOption); artworkSprite.sprite = character.characterSprite; nameText.text = character.characterName; } } Habe den Fehler troz langem suchen nicht gefunden. Wäre sehr sehr dankbar für Hilfe!!! LG
  6. Also: erstmal mal wieder vielen Dank für deine ausführliche erklährung!!!! Es hat alles super geklappt und hat mich auch im gesamtem Thema ,,Animationen" weitergebracht. Allerdings ist noch ein kleines Problem aufgetaucht. Und zwar, wenn sich der Player dreht stoppt/oder verlangsamt sich dei Bewegung des Spielers. weißt du vlt wie man das behebne könnte? hab da die letzten Stunden schon so viel rumprobiert und gesucht und hab nichts gefunden...
  7. Hi, Ich habe ein Problem mit meiner Rotationsanimation des Players. Die Animation läuft zwar eigendlich ohne große Probleme aber es gibt 2 blöde Sachen die ich gerne beheben würde. 1. Die Animation wird abgespielt geht dann aber direkt wieder auf die Ausgangsposition, also dreht sich in der (Rotations) animation wieder zurück. 2. Es braucht irgendwie immer eine gewisse Zeit bis der Player anfängt sich zu drehen, also dreht er sich dann auf dem Boden weiter. Ich will die Animation nicht einfach schneller machen sondern sie nur schneller starten. Wär cool wenn jemand helfen könnte!!!! Hier noch mein Jump Script: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class PlayerJump : MonoBehaviour { Animator playerAnimator; private void Start() { playerAnimator = GetComponent<Animator>(); playerRigidbody = GetComponent<Rigidbody2D>(); } //Jump Funktiom void Update() { if (buttonHeldDown) { while (canJump) { if (canJump) { canJump = false; playerRigidbody.velocity = new Vector2(0f, jumpForce); playerAnimator.SetTrigger("Jump"); } } } } } Ich hab nur das eingefügt was von Relevanz seien könnte. Wäre Dankbar für Hilfe!!!
  8. Okay vielen Dank für die Ausführliche Erklährung! es Funktioniert jetzt alles so wie ich das wollte! Danke dir für die Hilfe sie wird jedem der dannach sucht weiterhelfen. Vielen Dank für die ausführliche Erklärung!!!!!!!!!
  9. Also jetzt klappt es auf jedenfall mit dem springen. HAbe bemerkt das ich einfach nur den RB vergessen habe.... Oh man das ich wegen sowas solange festgehangen bin!! na ja. Der Spieler springt aber immer noch ohne Pause zwischen den Sprüngen. Ich habe Die StopAllCoroutines(); Am Anfang der Update Methode hingemacht und auch alles andere ausprobiert... da klappt iwi nicht... Weißt du woran das liegen könnte? Hier jetzt nochmal das überarbeitete Script: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class PlayerJump : MonoBehaviour { public float jumpForce = 10f; private Rigidbody2D playerRigidbody; private bool canJump; // Start is called before the first frame update bool buttonHeldDown; private void Start() { playerRigidbody = GetComponent<Rigidbody2D>(); } //Jump Funktiom public void HoldButton() { buttonHeldDown = true; } public void ReleaseButton() { buttonHeldDown = false; } void OnCollisionEnter2D(Collision2D collision) { canJump = true; } void Update() { StopAllCoroutines(); if (buttonHeldDown) { while (canJump) { if (canJump) { canJump = false; playerRigidbody.velocity = new Vector2(0f, jumpForce); StartCoroutine(Warte()); IEnumerator Warte() { yield return new WaitForSecondsRealtime(0.1f); canJump = true; } } } } } } Vielen Dank für deine Hilfe!!!!!
  10. using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class PlayerJump : MonoBehaviour { public float jumpForce = 5f; private Rigidbody2D myRB; private bool canJump; // Start is called before the first frame update bool buttonHeldDown; //Jump Funktiom public void HoldButton() { buttonHeldDown = true; } public void ReleaseButton() { buttonHeldDown = false; } private void OnCollisionEnter2D(Collision2D collision) { canJump = true; } void Update() { if (buttonHeldDown) { while (canJump) { if (canJump) { canJump = false; myRB.velocity = new Vector2(0f, jumpForce); StartCoroutine(Warte()); IEnumerator Warte() { yield return new WaitForSeconds(0.1f); canJump = true; } StopAllCoroutines(); ; } } } } } Ich habe jz alles so gemacht aber es funktioniert gar nichts mehr. Das heißt der Spieler springt gra nicht... Ich glaube in Unity habe ich alles richtig gemacht. Kann es am Script liegen? Es sind keinerlei Fehlermeldungen vorhanden... Hier mein Script:
  11. Also ich habe das Problem gelöst und habe nun noch eine andere kleinere Frage: Und zwar springt der ASpieler jetzt oft hintereinander wie er soll, aber da das ziemlich unrealistisch aussieht weil keine Zeit dazwischen ist, wollte ich das der Player noch 0,1 Sekunden wartet bis er wieder springt. Das habe ich nicht hinbekommen... Hier mein Script: <> void Update() { if (buttonHeldDown) { while (canJump) { if (canJump) { canJump = false; myRB.velocity = new Vector2(0f, jumpForce); //Hier soll noch 0,1 Sekunden gewrtet werden<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< } } } } (Ich bekomme die Codeblöcke immer noch nicht hin...) weiß jmd was ich dort für eine Methode brauche?
  12. Hat jemand eine Idee wie ich das anstellen könnte? Würde mich freuen!!
  13. Hii, Ich suxche nach einer Möglichkeit, das wenn der Spieler den Button hält das der Player dann solange springt bis er den Button wieder los lässt. habe dafür weder auf Youtube noch im Internet eine Lösung gefunden... Mein Jump Script sieht bisher so aus: <>public class PlayerJump : MonoBehaviour { public float jumpForce = 5f; private Rigidbody2D myRB; private bool canJump; // Start is called before the first frame update private Animator anim; void Start() { anim = GetComponent<Animator>(); myRB = GetComponent<Rigidbody2D>(); } //Jump Funktiom public void Jump () { //Darf Spieler springen? if (canJump) { canJump = false; myRB.velocity = new Vector2(0f, jumpForce); } } private void OnCollisionEnter2D(Collision2D collision) { canJump = true; } } (Ich habe es nicht hinbekommen Code Blöcke hinzuzufügen...)
  14. Ich habe jetzt das ganze als Prefab angelegt und in meine richtige scene gemacht. Es hat alles geklappt... frage mich nun was das Problem war... Dir mal wieder vielen herzlichen Dank für die kompetente Hilfe!!!
  15. Mhe ich habe das ganze mal in einer ganz neuen Szene gemacht und da hat es funktioniert
×
×
  • Create New...