Um eine Kanone zu erstellen, die ein Projektil abschießt, wenn die Leertaste gedrückt wird, musst du folgende Schritte ausführen:
- Erstelle ein leeres GameObject für die Kanone in deiner Szene und weise ihm ein Skript zu.
- Erstelle ein weiteres GameObject für das Projektil und weise es dem Skript als "projectilePrefab" zu. Stelle sicher, dass das Projektil über eine Rigidbody2D-Komponente verfügt, damit es sich physikalisch korrekt bewegt.
Hinweis: Das Skript geht davon aus, dass die Kanone immer nach oben zeigt. Falls deine Kanone in eine andere Richtung zeigt, musst du die Richtung des "firePoint.up" Vektors entsprechend anpassen.
Code
using UnityEngine;
public class Cannon : MonoBehaviour
{
public GameObject projectilePrefab;
public Transform firePoint;
public float fireForce = 1000f;
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
Fire();
}
}
void Fire()
{
GameObject projectile = Instantiate(projectilePrefab, firePoint.position, firePoint.rotation);
Rigidbody2D rb = projectile.GetComponent<Rigidbody2D>();
rb.AddForce(firePoint.up * fireForce);
}
}
Alles anzeigen