Hey wie kann ich bei unity machen das wen ich w gedrückt habe und ne distance hab das ich zu ner anderen scene gewechselt werde?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Hey, wie immer gibts da viele Möglichkeiten.

Du könntest mit Collidern und der OnTriggerStay Methode arbeiten. Das ist eine Methode die nur aufgerufen wird, wenn sich dein Objekt (bzw. dessen Collider) in einem anderen Collider befindet. In der Methode machst du dann deine Abfrage ob der Spieler die W-Taste drückt. Siehe hier: https://docs.unity3d.com/ScriptReference/Collider.OnTriggerEnter.html

2. Variante wäre, wie du bereits gesagt hast, die Distanz abzufragen. Das geht mit Vector3.Distance. Siehe hier: https://docs.unity3d.com/ScriptReference/Vector3.Distance.html

Der Code dazu würde in C# etwa so aussehen:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SceneChange : MonoBehaviour
{

[SerializeField] float minSceneChangeDistance = 1;
[SerializeField] Transform sceneChangeTransform;

void Update()
{
if (Input.GetKeyDown(KeyCode.W) && Vector3.Distance(transform.position, sceneChangeTransform.position) <= minSceneChangeDistance)
{
//Lade eine neue Scene oder Teleportiere den spieler...

}
}
}

Liebe Grüße,

Dosenbiiir

Noch eine kurze Notiz:

Das Script müsstest du auf das Spieler Objekt legen und die
"sceneChangeTransform" Variable im Inspector zuweisen (das Objekt welches der Spieler erreichen muss - also das Objekt dessen Distanz zum Spieler zu prüfen ist).

Die "minSceneChangeDistance" Variable ist die minimum Distanz, ab wo der Spieler teleportiert werden kann.

1

Ich empfehle dir, das gesamte Problem in Teilprobleme zu zerlegen:

1. Der Spieler drückt die Taste 'W'
2. Zwischen dem Spieler und einem Punkt muss eine bestimmte Distanz herrschen
3. Die Position des Spielers soll neu gesetzt werden, nachdem eine neue Szene gesetzt wurde.

Daraus erhalten wir jetzt zwei Bedingungen, die es zu überprüfen gilt und eine Aktion, die ausgeführt werden soll, wenn beide Bedingungen erfüllt sind.

// Pseudo-Code!

Vector3 playerposition;
Vector3 distanzPunkt;
int minimaleDistanz;

Transform playerTransform;
Vector3 neuePosition;

private void Update(){
if (Input.GetKeyDown (KeyCode.W) &&
Vector3.Distance(playerposition,distanzPunkt) > minimaleDistanz )
// neue Szene laden
playerTransform.position = neuePosition;
}
}


Siehe auch:
https://docs.unity3d.com/ScriptReference/Input.GetKeyDown.html
https://docs.unity3d.com/ScriptReference/Vector3.Distance.html
https://docs.unity3d.com/ScriptReference/Transform-position.html

Was bedeutet "made with unity" , was ist unity überhaupt?

Hallo,

Aktuell lerne ich java um später mal anwendungen zu entwickeln.

Was genau ist Unity? In so einem Android Spiel erscheint das immer , wenn ich das Spiel starte. Dann kommt so ne kurze Ladeszene mit "made with unity".

Ist das auch eine Programmiersprache , um Anwendungen zu entwickeln?

Mfg

...zur Frage

Unity3D 3D Game Server Client System Entwikeln?

Hallo,
ich entwickle gerade ein 3D Game mit Unity. Dieses Game soll Multiplayer fähig sein!

Von Unity aus gibt es ja die Multiplayerfubktion aber was ich machen möchte ist eine Multiplayer Funktion wie Minecraft.
Also mit Server IP!

Jetzt weis ich aber nicht wie ich das machen soll!

Wie geht das? (ich möchte nicht Unity Multiplayer verwenden da ich ja sonst für die Server zahlen muss! oder die Server einfach zuschlecht sind für das was ich machen möchte!)

...zur Frage

Unity 3D Szenenwechsel

Hey Leute,

ich arbeite seit kurzer Zeit mit Unity 3D(kostenlose Version) und habe eine Anfänger Frage: Und zwar wie mach ich es dass wen mein Spieler auf eine Platfor kommt ein neues Level startet? Ich hoffe ihr verstet was ich meine und schon mal danke im Voraus!

...zur Frage

Unity 3D - Android Spiel exportieren

Ich habe ein kleines Unity Spiel gemacht (für Android). Immer wen ich es exportiere und dann auf mein Handy laden will kommt diese Meldung: "Awendung konnte nicht installiert werden!"

Auch wen ich ein neuen Android Projekt erstelle und nichts code, kommt diese Fehlermeldung (Also kann es nicht an dem Cod liegen, welchen ich geschrieben habe)

weiß jemand, wie ich dieses Problem lösen kann?

...zur Frage

Wie/wo lernt man C# Begriffe?

Ich habe mir als Ziel gesetzt, ein Spiel in Unity zu entwickeln. Mit dem Modellieren und der Engine an sich komme ich relativ gut klar, nur vom programmieren bin ich noch sehr verwirrt. Beispielsweise sehe ich viele C# Tutorials die classes, booleans usw erklären, wenn ich mir aber später Unity Programmier Tutorials anschaue fallen aufeinmal Begriffe wie "Transform" oder noch spezifischer "smoothSpeed" (Kamerasteuerung) usw... Ich frage mich da; woher kommen diese Begriffe? Gibt es da irgendwo eine Liste? Ich verstehe das alles irgendwise nicht :/

...zur Frage

Unity engine, terrain verschwindet wenn ich ran zoome?

Hey, ich bin noch neu in unity und komischer weise, plötzlich, verschwindet das terrain wenn ich ran zoome also in der scene, habe ich villeicht irgendetwas gedrückt? :D Danke schonmal :)

...zur Frage

Was möchtest Du wissen?