Flugzeug hoch und runter fliegen lassen in c# (unity)?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Es gibt mehrere Methoden:

transform.Rotate(...)

- Nicht Physikbasiert

- Rotiert das Flugzeug

- Kann hoch/runter fliegen, wenn deine Vector3's richtig eingetragen sind

transform.Translate(...)

- Nicht Physikbasiert

- Rotiert das Flugzeug nicht

- Kann hoch/runter fliegen

rigidbody.AddTorque(...)

- Physikbasiert

- Rotiert das Flugzeug

- Kann hoch/runter fliegen, wenn dein Vector3 und ForceMode richtig eingetragen ist.

rigidbody.AddForce(..)

- Physikbasiert

- Rotiert das Flugzeug nicht

- Kann hoch/runter fliegen, wenn dein Vector3 und ForceMode richtig eingetragen ist.

Ich kann dir mit dem Code nicht helfen, da du ihn nicht reinkopiert hast. Es gibt natürlich weitere Methoden, jedoch sind dies die einfachsten und herkömmlichsten.

Woher ich das weiß:eigene Erfahrung

tim2002431 
Fragesteller
 03.10.2020, 14:09

Hi, hier ist mein Code habe ihm beim fragen stellen vergessen reinzukopieren

using UnityEngine;

using System.Collections;



public class PlayerController : MonoBehaviour {



public float maxSpeed = 4;

public float jumpForce = 550;



private Rigidbody2D rb2d;

private bool jump = false;



// Use this for initialization

void Start () {

rb2d = GetComponent<Rigidbody2D>();



}



// Update is called once per frame

void Update () {

if (Input.GetButtonDown ("Jump"))

jump = true;



}



void FixedUpdate()

{

float hor = Input.GetAxis ("Horizontal");

rb2d.velocity = new Vector2 (hor * maxSpeed, rb2d.velocity.y);



if(jump)

{

rb2d.AddForce (new Vector2(0,jumpForce));

jump = false;

}

}

}
0

Du rotierst das Flugzeug horizontal/vertikal

Ich kenne deinen bisherigen Code nicht. Ich würde es über Vektoren und Matrizen lösen, was Richtung und Neigungen angeht.


J0T4T4  03.10.2020, 13:53

Wow, ist das nicht Overkill?

0
Seminom  03.10.2020, 13:56
@J0T4T4

Was ist daran bitte overkill? Ich gehe davon aus, dass das Flugzeug im 3D-Raum unterwegs ist.

0
tim2002431 
Fragesteller
 03.10.2020, 13:56
Hi, hier ist mein Code:

using UnityEngine;
using System.Collections;
public class PlayerController : MonoBehaviour {
public float maxSpeed = 4;
public float jumpForce = 550;
private Rigidbody2D rb2d;
private bool jump = false;
// Use this for initialization
void Start () {
rb2d = GetComponent<Rigidbody2D>();
}
// Update is called once per frame
void Update () {
if (Input.GetButtonDown ("Jump"))
jump = true;
}
void FixedUpdate()
{
float hor = Input.GetAxis ("Horizontal");
rb2d.velocity = new Vector2 (hor * maxSpeed, rb2d.velocity.y);
if(jump)
{
rb2d.AddForce (new Vector2(0,jumpForce));
jump = false;
}
}
}
1