Question by
AlexT143 · Jan 02, 2019 at 05:10 PM ·
prefabbeginnerprefabsinitializationbasic programming
I need help adding an initial upwards velocity to some cloned prefabs.
I'm extremely new and inexperienced in Unity. The past few weeks I've been trying to make a basic version of the game Asteroids. I'm getting my bullet prefabs to spawn from my ship, however, of course, as bullets move, I would like my bullets to move upwards at a reasonable velocity. I've been using forum information and the manual in the past, but in spawning with initial velocity has been troublesome.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerControls : MonoBehaviour
{
public float speed = 10f;
public float boundY = 2.25f;
public KeyCode moveLeft = KeyCode.LeftArrow;
public KeyCode moveRight = KeyCode.RightArrow;
public KeyCode shoot = KeyCode.Space;
private Rigidbody2D rb2d;
public GameObject bullet;
public int rotation;
private Rigidbody2D bulletrb2d;
public
// Use this for initialization
void Start()
{
rb2d = GetComponent<Rigidbody2D>();
bulletrb2d = bullet.GetComponent<Rigidbody2D>();
}
// Update is called once per frame
public IEnumerator Delay(){
yield return new WaitForSecondsRealtime(5);
}
void Update()
{
var vel = rb2d.velocity;
if (Input.GetKey(moveLeft))
{
vel.x = -speed;
}
else if (Input.GetKey(moveRight))
{
vel.x = speed;
}
else
{
vel.x = 0;
}
rb2d.velocity = vel;
var pos = transform.position;
if (Input.GetKey(shoot)){
Instantiate(bullet, pos, Quaternion.Euler(0, 0, 90));
bulletrb2d.velocity = transform.up * speed;
}
I've tried multiple ways to add initial velocity and none of them have worked. If further information is needed, I'd be glad to help. Thank you.
Comment