2016-05-24 5 views
0

Ich habe seit einer Woche gegoogelt, aber ich habe immer noch nichts gefunden. Was ich brauche, ist, dass die Character(Cat) auf Plattform springen muss, nachdem x auf diese Plattform geklickt hat. Es gibt keine Bewegungen, nur Auto springen.Wie mache ich RigidBody 2D Springe auf bestimmte XYZ Unity 3D

Dieses Ding ist das Letzte, was getan werden sollte.

+1

Die Frage ist nicht sehr klar. Versuchen Sie, etwas von Ihrem Code hinzuzufügen. –

+0

@ReazMurshed wenn ich nur könnte. Ich werde versuchen, besser zu erklären mit [Bild] (http://prntscr.com/b7z5ob) So gibt es eine Katze und es gibt eine Plattform. Der Punkt ist, dass Cat auf diese Plattform springen muss, wenn der Spieler auf diese Plattform klickt. Es ist wie in einigen MMORPGs wie Click to Move. – MrExoduso

Antwort

0

Ich bemerkte Ihren Kommentar und sagte, Sie wollten es wie in RPGs, wo Sie eine Position klicken, dann bewegt sich Ihre Toon dort. Wenn das ähnlich ist, was Sie wollen, gibt es ein paar verschiedene Möglichkeiten, wie Sie es tun können. Man könnte so etwas wie

public GameObject cat; 
int clickedAmount = 5; 

OnMouseDown() { 
    clickedAmount -= 1; 
    if (clickedAmount <= 0){ 
     cat.GetComponent<CatControllerScript>().moveToTarget = transform; //Give the cat script the transform of this platform 
    } 
} 

dann in der Katze Skript etwas tun, wie

public Transform moveToTarget; 
public float moveSpeed; 
void Update(){ 
    if (moveToTarget != null){ 
     //one way is 
     transform.position = Vector3.MoveTowards(transform.position, moveToTarget.position, moveSpeed * Time.deltaTime); 
     //Another way is 
     transform.position = Vector3.Slerp(transform.position, moveToTarget.position, moveSpeed * Time.deltaTime); 
    }} 

tun Eines können Sie die Kollisionen überprüfen, und wenn Sie mit der Transformation kollidieren, machen den moveToTarget = null. Oder du kannst eine Boole machen, die geändert wird, und dann passierst du die Transformation separat.

Hoffe, das hilft!

+1

Werde das morgen versuchen. Vielen Dank! – MrExoduso

+0

Kein Problem, lassen Sie mich wissen, wie es sich herausstellt! : D –

+0

Danke, Mann! Das suche ich seit Wochen! Gott segne dich: 'D – MrExoduso

1

Sie können die Katze springen lassen, indem Sie ihrem Starrkörper Geschwindigkeit hinzufügen. Fügen Sie für das Klicken auf die Plattform einen Box Collider 2D hinzu. Fügen Sie dieses Skript dann zur Plattform hinzu.

//after the using statements 
public GameObject cat; //set this in the inspector by dragging the cat into the variable slot 
int clickedAmount = 5;//times it takes to click before the cat jumps 
float jumpForce = 10.0f 

OnMouseDown() { 
    clickedAmount -= 1 
    if (clickedAmount == 0) { 
     cat.GetComponent<Rigidbody2D>().AddForce(new Vector2(0f,jumpForce)); 
    } 
} 

Wenn die Katze springen nicht angezeigt wird, stellen Sie sicher, dass Sie die jumpForce Variable erhöhen.