- Home /
Question by
IamJarek · Sep 11, 2017 at 06:45 PM ·
scripting problem2d gamegameshooting2d-physics
How to make my space ship shooting (2D Game)?
Hi, (I'm a beginner) I wrote this script for space ship:
using UnityEngine;
public class ShipController : MonoBehaviour {
public GameObject bullet;
private int speed, speed2;
public float x, y;
public float maxSpeed = 200f;
void Start () {
bullet.SetActive(false);
speed = 2;
speed2 = 2;
x = transform.position.x;
y = transform.position.y;
}
void Update() {
var rigidbody = this.GetComponent<Rigidbody2D>();
if (Input.GetKey(KeyCode.W))
{
rigidbody.AddRelativeForce(Vector2.up * speed);
}
if (Input.GetKey(KeyCode.S))
{
rigidbody.AddRelativeForce(Vector2.up * -speed);
}
if (Input.GetKey(KeyCode.A))
{
rigidbody.AddTorque(speed2, ForceMode2D.Force);
}
if (Input.GetKey(KeyCode.D))
{
rigidbody.AddTorque(-speed2, ForceMode2D.Force);
}
if (Input.GetKey(KeyCode.Q))
{
rigidbody.AddRelativeForce(Vector2.left * speed);
}
if (Input.GetKey(KeyCode.E))
{
rigidbody.AddRelativeForce(Vector2.right * speed);
}
if (Input.GetKey(KeyCode.LeftShift) && rigidbody.velocity.magnitude <= 2)
{
rigidbody.velocity = rigidbody.velocity.normalized * 0;
}
if (rigidbody.velocity.magnitude > maxSpeed)
{
rigidbody.velocity = rigidbody.velocity.normalized * maxSpeed;
}
var bullet_rigbody = bullet.GetComponent<Rigidbody2D>();
bullet.transform.rotation = this.transform.rotation;
}
}
And this for bullet:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Bullet : MonoBehaviour {
public GameObject ship;
void Start () {
gameObject.SetActive(false);
}
void Update () {
var bullet_rigidbody = gameObject.GetComponent<Rigidbody2D>();
if (Input.GetKeyDown(KeyCode.Space))
{
gameObject.SetActive(true);
gameObject.transform.rotation = ship.transform.rotation;
gameObject.transform.position = ship.transform.localPosition;
bullet_rigidbody.AddRelativeForce(Vector2.up * 400);
}
}
}
Problem: bullet is not displaying while i press space. Please help. PS: How to destroy object when I shoot this object?
Comment
Your answer
Follow this Question
Related Questions
how to shoot bullets from circumference of a circle ? 1 Answer
Bullet speed changes depending on how close and far I click the mouse button 2 Answers
How do I create a 2d shooting mechanic (Left and Right)? 1 Answer
Jumping isn't smooth while going up 1 Answer
How to have coins burst out in random directions after destroying an object in unity? 2 Answers