Jump to content
Unity Insider Forum

Stigma

Members
  • Posts

    9
  • Joined

  • Last visited

Stigma's Achievements

Newbie

Newbie (1/3)

0

Reputation

  1. Achja, das Kreuzprodukt. Lang lang ist es her. Das funktioniert soweit auf jeden Fall. Ich glaube ich komme so erstmal weiter. Vielen lieben Dank für deine Hilfe.
  2. Hast du Lust mir zu verraten, wie ich Rotation ohne den Leader machen kann? Ich komme irgendwie nicht drauf. Ich würde es eigentlich schöner finden, wenn der CC nicht so abhängig von dem Leader ist.
  3. Der CC soll dem rechts Vektor vom Leader folgen. Ich gucke quasi von der Seite in die Mitte auf den CC, während er um den Zylinder fährt. Dabei nimm der CC dann die. characterController.transform.rotation = Quaternion.LookRotation(leader.transform.right); Wenn du verstehst, was ich meine.
  4. Ich habe das mal ausprobiert und das funktioniert soweit auch ganz gut. Vielen Dank dafür! Jetzt habe ich noch das Problem, dass bei der Kollision die Position des leaders wieder auf den Kreis gesetzt wird. Aber die Rotation nicht. Das habe ich so gelöst: Vector3 directionToCenter = leader.transform.position - origin.position; leader.transform.rotation = Quaternion.LookRotation(directionToCenter); Meinst das ist ok so, oder hast du da eine smartere Idee?
  5. Ja genau, dass soll eigentlich nicht passieren. Der soll immer auf dem selben Kreis fahren und nicht abweichen. Wenn ich jetzt den leader immer auf die Position vom CC setze und dann gegen ein Obstacle komme und einfach immer weiter gegen fahre, verschiebt sich der CC ja auch und rutscht dann irgendwann einfach dran vorbei. Dann fährt er danach zwar weiter im Kreis. Nur leider nicht auf dem richtigen. Ich vermute das selbe Problem hätte ich auch, wenn ich das über Trigonometrie löse, da ich da ja den nächsten Punkt auf der Kurve anhand meiner aktuellen Position berechnen würde, wenn ich mich nicht irre. Und wenn durch die Kollision schon eine Verschiebung stattgefunden hat, wäre der nächste Punkt ja auch nicht akkurat.
  6. Vielen Dank für die genaue Erklärung! Genau das was du mit den Physics.CapsuleCast meinst, meinte ich auch. Nur halt mir einem Physics.RayCast. Aber so richtig glücklich bin ich mit dieser Lösung irgendwie nicht. Am liebsten hätte ich eine Methode, die mir einfach den Motion Vector zurück gibt und ich den einfach für CC.Move verwenden kann. Ich habe auch versucht die transform.TurnAround Funktion "nachzubauen". Aber leider stehe ich da Mathematisch völlig auf dem Schlauch. Die Frage ist, was ist an dieser Stelle "die beste" Lösung. Du scheinst da ja ziemlich Fit zu sein. Hast du noch eine Idee, wie man das sonst angehen könnte? Vielleicht auch ohne CC. Aber ich denke, dass ich mit einem Rigidbody und AddForce genau das selbe Problem haben werde.
  7. Ok, ich verstehe was du meinst. Wenn es nicht untergeordnet wird, glitcht er zwar nicht durch, aber rutscht anhand des Winkels irgendwann am Obstacle vorbei. Das Verhalten soll schon so sein, dass wenn der CC kollidiert auch angehalten wird. Also das Objekt das im Kreis fährt und das der CC verfolgt, müsste eigentlich auch stehen bleiben. Man kann schon sagen, dass sie immer zusammen bleiben sollen. Hast du da eine Idee, wie ich das erreichen kann? Das Einzige was mir in den Sinn kommt, ist bei einer Kollision den Input zu disablen, damit das Objekt, welches im Kreis fährt auch stehen bleibt. Nur dann könnte ich nicht mehr in die andere Richtung fahren. Dann müsste ich mit einem Raycast gucken, ob die andere Seite frei ist oderso. Aber eigentlich wollte ich keine Raycasts benutzen.
  8. Hey, danke für deine Antwort! Meinst du das so, dass ich ein Parent habe, welches ich mit transform.RotateAround rum fahren lassen und dann ein Child mit einem CC habe, welches dem Parent folgt? So in entwa? parent.transform.RotateAround(emptyObjectTransform.position, Vector3.up, speed * Time.deltaTime); Vector3 direction = parent.transform.position - child.transform.position; child.CharacterController.Move(direction); Nur sehe ich dann das Problem, dass wenn das Child kollidiert, dass der Parent einfach weiter fährt und das Child dann irgendwann durch den Collider glitcht. Oder habe ich dich falsch verstanden?
  9. Hallo, ich versuche ein Objekt um ein anderes Objekt im Kreis mit einem gewissen Radius fahren zu lassen. Ich habe mir dafür ein Empty auf (0/0/0) gesetzt und mein anderes Objekt auf (0/0/-15). Und dann mit transform.RotateAround(emptyObjectTransform.position, Vector3.up, speed * Time.deltaTime); ums Objekt fahren lassen. Das funktioniert auch genau so, wie ich mir das vorgestellt habe. Nur leider funktioniert die Collision so ja gar nicht. Darum wollte ich das nun gerne mit dem CharacterController machen. Nur leider weiss ich nicht genau, wie ich die Rotation um das Objekt als MotionVector genau so berechnet bekomme, wie es transform.RotateAround macht. Hat da jemand eine Idee, wie man das mit dem CharacterController lösen kann? Oder vielleicht auch eine andere Lösung, bei der Collision funktioniert? Liebe Grüße
×
×
  • Create New...