Jump to content
Unity Insider Forum

kruemel

Members
  • Content Count

    46
  • Joined

  • Last visited

Community Reputation

1 Neutral

About kruemel

  • Rank
    Advanced Member
  1. und genau daran liegt das problem habe ich eben fest gestellt 😳 Der RT trigger hängt nämlich ab und an mal und bleibt dann auf den vollen wert (1.0) hängen 😓 Habe das nämlich mal mit einem anderen getestet und da lief es soweit ohne probleme... was ein käse ^^°
  2. das kann ich mir irgendwie nicht so ganz vorstellen 😕 alles klappt ja wie es soll... nur die LT und RT Axen wollen ned so 100%ig leider 😓
  3. äh... ok das hatte ich etwas falsch verstanden dann ^^° beide hinteren schulter tasten werden zum glück nicht gleichzeitig gebraucht und sollten so eigentlich kein problem geben wenn dann nichts passiert ^^ ich habe es jetzt mal so probiert wie ich es aus deinem post verstanden habe... ... float RT_Fire = Input.GetAxis ("Fire2"); if (Input.GetAxis("Fire2") >= 0.5f) { anim.SetBool ("RT_Fire", true); MOVE = false; speed = 0.0f; } if (Input.GetAxis("Fire2") <= 0.4f) { anim.SetBool ("RT_Fire", false); MOVE = true; speed = 1.0f; } ... Leider springt so der Trigger immer wieder an,aus,an,aus... obwohl ich den RT Button fest halte. das liegt dann wohl am update per frame wie ich mal stark vermute. langsam bin ich echt am verzweifeln 😰 aber ich habe mir nun gedacht das ich es etwas eigenständig umbauen werde. Ich baue das ganze jetzt so um das ich den float weiterhin benutze und aber nach dem ende der animation eine abfrage starte ob noch genug magie für einen weiteren zauber vorhanden ist. wenn nein dann setze ich den float auf 0.0f und somit kommt ja dann keine weitere animation. das sollte ja eigentlich die lösung sein. ich habe auch schon etwas im internet gesucht aber leider nicht so ganz verstanden wie man die genaue animations zeit in einem " void Update ()" aus liest. hättet ihr da evtl einen tipp für mich? 😊 ansonsten weis ich langsam echt nicht mehr weiter wie ich es anstellen soll 🙁
  4. hm... ok 😳 auf die idee bin ich jetzt noch ned gekommen... 😓 werde ich morgen dann mal testen weil bisher dachte ich immer das diese LT und RT tasten nur float werte geben können.
  5. joa das die hinteren tasten für zb autorennen gedacht sind wegen der stufenlosen beschleunigung etc ist mir ja klar. ich hatte nur gehofft das ich diese auch genau so ansteuern kann wie einen A, B, X oder Y button 😕 da ich in meinem spiel nunmal die 4 schulter tasten so belegen muss damit die steuerung nicht zu kompliziert wird. oder meintest du mit deiner antwort das man diese auch wie ein button ansteuern kann??? 😳
  6. wie genau das mit den animationen alles abläuft und mit den conditionen etc da habe ich mich schon länger mit beschäftigt und das system dahinter wann ,was und vor allem wie ablaufen soll aus dem idle modus etc soweit ganz gut verstanden 😊 das einzige problem was ich allerdings habe ist das die hinteren schulter tasten ja eine achse haben und somit ich es zwar dank eurer hilfe jetzt schon angesteuert bekomme, die animation aber dann wenn ich die taste LT oder RT gedrückt halte sich endlos wiederholt. Da es sich bei der animation um einen zauber handelt der ca 2 sek in einer animation aufbaut bis er ausgeführt wird und in der zeit aber durch loslassen der LT oder RT tasten abgebrochen werden kann ist es für mich so etwas komplizierter leider 😕 bei allen anderen tasten klappt das bisher soweit ganz gut mit der trigger variablen nur eben verstehe ich das system dahinter nicht mit den LT und RT achsen 😩 wieso können die nicht einfach genau so einfach angesteuert werden wie die üblichen tasten 😐
  7. ok ich habe es jetzt so übernommen und soweit klappt es zumindest mit nem dauer loop ... var isPressed = Input.GetAxis("Fire1") >= 0.5f; if (!wasPressed && isPressed) { OnTriggerDown(); } if(wasPressed && !isPressed) { OnTriggerUp(); } if(wasPressed && isPressed) { OnTriggerStay(); } wasPressed = isPressed; ... private void OnTriggerDown() { anim.SetFloat ("LT_Fire", 1); } private void OnTriggerUp() { anim.SetFloat ("LT_Fire", 0); } private void OnTriggerStay() { //??? } nur bekomme ich es nicht wirklich hin das nach einem durchlauf die animation stopt obwohl der button noch gedrückt ist. entweder kommt ein dauer loop oder aber es klappt garnichts 😥 ich hab es mal mit einem WaitForSeconds befehl probiert aber da kommt nur ein fehler bei raus.
  8. hm... also das es klappt habe ich schon hin bekommen... ...nur leider hängt die animation beim gedrückt halten so auch in einer dauer schleife fest 😕 diese soll ja auch nur einmalig ausgefürt werden und dann erst wieder wenn der button kurz los gelassen wird. da bin ich gerade ziemlich überfragt weil es ja die LT und RT achsen betrifft.
  9. ja stimmt da hast du recht das sind auch werte 😅 habe das gerade mit dem trigger getestet und es funktioniert tadellos. vielen dank nochmal dafür. 😄 nur jetzt weis ich nicht wie ich das beim zb xbox controller mit den LT und RT tasten genau so machen kann das die aktion nur einmalig ausgeführt wird und erst beim loslassen und erneutem drücken wieder geht. habe da schon ziemlich gesucht damit die tasten überhaupt so angesteuert werden ^^° habe voll vergessen das diese ja auch einen axen druckpunkt haben. diesen brauche ich aber allerdings so nicht sondern nur an/aus 😓
  10. schonmal vielen dank für die tipps. Mit dem jump auf false setzen hatte ich schon probiert und in der tat da bleibt das letzte frame hängen und sieht dann natürlich dämlich aus ^^° Das mit der trigger variablen hört sich allerding intressant und plausibel an. Das werde ich wohl mal testen. 😃 ist das dann auch ein false/true oder ein wert? wenn ich später oder morgen zeit habe setze ich mich mal ran und versuche mal eure tips umzusetzen.
  11. hi. Ich bin etwas am verzweifeln... ich suche zwar schon im internet nach ner lösung aber irgendwie weis ich nicht so 100% wie ich es in der suche richtig suchen soll ^^° ich habe folgendes script: ... if (Input.GetButtonDown("Jump") == true) { anim.SetBool ("Jump", true); MOVE = false; speed = 0.0f; } if (Input.GetButtonUp("Jump") == true) { anim.SetBool ("Jump", false); MOVE = true; speed = SAVEspeed; } ... leider springt dann der Player per animation andauernd ohne pausen wenn ich den button gedrückt halte. ich suche nach einer lösung das der button nur einmal auslöst und erst wieder den Player erneut springen lässt wenn der button kurz los gelassen wurde. ich verstehe nur nicht so genau wie ich das anstellen soll... ich habe schon viel probiert was ich gehofft habe was hilft, aber leider klappt es nicht so wie erhofft 🙁
  12. ich schau mir am liebsten immer zuerst mal scripte an um diese zu verstehen. was eigenes hatte ich danach natürlich schon vor zu schreiben 🙂 ich versuche halt immer zuerst die fehler zu verstehen und das tue ich oben leider bei dem einen fehler überhaupt nicht so wirklich. das komische ist das ich es ja von JS zu C# übersetzt habe und es vorher aber in JS ohne weiteres geklappt hat... laut internet recherche sollte es aber eigenlich so klappen 😨 Danke schonmal für die template.
  13. bin ich ja quasi dabei. aber ich finde einfach den fehler in dem script nicht. Vector3 right = Vector3(forward.z, 0, -forward.x); die beiden letzten hab ich raus aber oben steh ich etwas auf dem schlauch 🤔 das script war vorher in JS und ich habe es zu C# abgeändert... nur leider passt da etwas noch nicht so 100%ig
  14. ich habe jetzt eben von einem bekannten ein script zu geschickt bekommen welches aber leider noch nicht so 100% läuft. using UnityEngine; public class CharacterMoving : MonoBehaviour { float speed = 5.0f; float gravity = 5.0f; float smoothSpeed = 100.0f; float smoothDirection = 100.0f; private Vector3 moveDirection = Vector3.zero; private float verticalSpeed = 0.0f; private float moveSpeed = 0.0f; private bool grounded = false; private float targetAngle = 0.0f; void Awake (){ moveDirection = transform.TransformDirection(Vector3.forward); } void UpdateSmoothedMovementDirection (){ Transform cameraTransform = Camera.main.transform; Vector3 forward = cameraTransform.TransformDirection(Vector3.forward); forward.y = 0; forward = forward.normalized; Vector3 right = Vector3(forward.z, 0, -forward.x); Vector3 targetDirection = Input.GetAxis("Horizontal") * right + Input.GetAxis("Vertical") * forward; if (targetDirection != Vector3.zero) { moveDirection = Vector3.Lerp(moveDirection, targetDirection, smoothDirection * Time.deltaTime); moveDirection = moveDirection.normalized; } float curSmooth = smoothSpeed * Time.deltaTime; if (!grounded) { curSmooth *= 0.5f; } moveSpeed = Mathf.Lerp(moveSpeed, targetDirection.magnitude * speed, curSmooth); } void Update (){ UpdateSmoothedMovementDirection(); if (grounded) { verticalSpeed = 0.0f; } verticalSpeed -= gravity * Time.deltaTime; Vector3 movement = moveDirection * moveSpeed + Vector3 (0, verticalSpeed, 0); movement *= Time.deltaTime; CharacterController controller = GetComponent<CharacterController>(); CollisionFlags flags = controller.Move(movement); transform.rotation = Quaternion.LookRotation(moveDirection); } void GetSpeed (){ return moveSpeed; } void GetDirection (){ return moveDirection; } } Ich bekomme da noch 4 fehler angezeigt... von vorher 12 ^^° nur leider verstehe ich nicht genau wie ich diese letzten beheben könnte 🙁 ich habe mal ein bild mit den fehlern angehangen. Vielen lieben dank schonmal Neue Bitmap.bmp
  15. uff das wird echt schwierig 🤔 gibt es da schon irgenwelche tutorials zu? ich brauche eigentlich nur einen character controller welcher den char in die richtung sehen läst welche er läuft. finde da bisher nicht wirklich was was mir irgendwie weiterhelfen könnte 🙁
×
×
  • Create New...