Jump to content
Unity Insider Forum

Sixnine

Members
  • Content Count

    12
  • Joined

  • Last visited

Community Reputation

1 Neutral

About Sixnine

  • Rank
    Member
  1. Hallo, was geht ich blieb beim C# Scripting in Unity an einem komisch klingenden Problem hängen. Ich hab ein simples C# Script, welches die Rotation der First Person Player - Kamera festlegt: public class PlayerLook : PlayerBase { [Header("Looking around")] [SerializeField] float sensX = 15f; [SerializeField] float sensY = 15f; [SerializeField] float multiplier = 0.1f; Vector3 rot; void Start() { Cursor.lockState = CursorLockMode.Locked; Cursor.visible = false; rot = transform.eulerAngles; } v
  2. Kurzes Update, ich bin jetzt auf collision.contacts gestoßen, damit kann ich feststellen, wo die Kollision stattgefunden hat. Dann kann ich herausfinden, welche Positions -und Rotationsachsen ich einfrieren muss. Ich gebe noch ein Update, sollte ich es hingekriegt haben oder warum nicht.
  3. Um den ganzen Kram einfach kurz zu fassen: Wenn ich ein Objekt aufhebe dann mache ich drei Sachen: Ich schalte die Rigidbody Gravitation des Objekts aus Ich schalte die Rigidbody Freeze Rotation des Objekts auf an Ich setze den Parent des Objekts auf meine Spielerkamera. Wenn ich es fallen lasse, mache ich genau diese Schritte wieder rückgängig. Ich hab da auch schon einen Ansatz wie ich das fixxen könnte. Dazu müsste ich bei einer Kollision erfahren, welche "Kante" des Objekts kollidiert ist, und dessen Position auslesen können. Ich schau nochmal im Web nac
  4. Okay hier mein Script zum Aufheben (bisschen lang, denn da ist noch so was wie Werfmechanik und weiteres drinne): using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerPickUp : MonoBehaviour { [Header("Script functionalities")] [SerializeField] Transform cam; [SerializeField] float playerWidth = 1f; [Header("Pick up system")] [SerializeField] float range = 5f; [SerializeField] bool enableThrowing = true; [SerializeField] float throwForce = 5f; [SerializeField] float throwCompression = 2f; [Header("Adva
  5. Vielleicht kurz nochmal zur Verdeutlichung was ich meine: https://photos.app.goo.gl/hnWREcaeRVhgxYiN6 Dieses "Hochbuggen" wenn man das Objekt an den Boden presst. ... oder auch an eine andere Wand, dann ist das "Buggen" auf einer anderen Achse
  6. Ok, aber das Problem was ich grade lösen wollte ist, dass das Objekt, wenn es z. B. auf den Boden kollidiert, und der Spieler weiter nach unten guckt, nicht die "komischen" Rotationen entstehen. [das Video veranschaulicht das etwas besser]. Die Rotationen entstehen ja, weil das aufgehobene Item ein Child von der Camera ist und die Rotation dann entsprechend angepasst wird, auch wenn das Objekt kollidiert.
  7. Hallo, erstmal vielen Dank für die Antwort. Und ja theoretisch könnte ich das machen, allerdings wollte ich, wie unnötig das auch klingen mag, etwas komplexeres ausprobieren. In meinem Fall wird das aufgehobene Item wieder losgelassen wenn der User die Maustaste loslässt oder das Crosshair nicht mehr auf dem Objekt ist. [Das passiert bei Objektkollisionen] Ich hab mir in der Zwischenzeit aber noch Gedanken dazu gemacht.. Bei einer Kollision muss ich wissen, welche "Kante" kollidiert ist, um die entsprechende Positionierung und Rotation auf den entsprechenden Axen zu freezen. Wi
  8. Überprüfe ob du deine Scripts an die entsprechende GameObjects attached hast.. Und wenn du vielleicht mal deine Codes hochlädst können wir ja vlcht. Stellung nehmen
  9. [[Nicht wundern Video wurde grad geuploaded bei Google Drive, heißt dass es noch 14 min dauert o. so bis FullHD verfügbar ist]]
  10. Hey Leute, ich hab mich hier mal neu ins Forum gewimmelt, weil ich mit einem Problem nicht zurecht komme. Ich auf nem simplen Rigidbody First Person Controller meinen Aufheben-Script attached. Er bewirkt, dass man, sobald man ein Objekt aufhebt, es an den Spieler geparented wird und keine Gravitation hat. Nun, wenn das aufgehobene Objekt kollidiert, will ich diese komischen Rotationen und Repositionings beseitigen. Bitte das Video dazu gucken: https://drive.google.com/file/d/10Iu1vvYafrub2zajdAjT2-RE88Jre_Nu/view?usp=sharing Ich hab schon ma probiert, die Position und Rotation z
  11. Btw. if (Input.GetKeyDown(KeyCode.I)) { bool b = !InventoryActive; InventoryMenu.gameObject.SetActive(b); Cursor.visible = b; Time.timeScale = System.Convert.ToInt32(!b); InventoryActive = b; } so kann man den Code noch ein bisschen "versimplen". Und zur Frage, also wo genau stellst du den LockMode vom Cursor denn ein? Paar Codeausschnitte könnten helfen das Problem zu finden LG
×
×
  • Create New...