Hello,
I have two scripts - one for my beam and one for asteroid. The problem is, that after my beam shoot asteroid, the asteroid is only move up along Y axis and rotate, but not change z or x position. I thought, that if i attach a rigidbody and cofigurable joint to my asteroid, it will move properly. What I missing?
Beam Script
using UnityEngine;
using System.Collections;
public class Beam : MonoBehaviour {
public float beamVelocity;
public GameObject miniExplosion;
public GameObject go;
public void Go (Vector3 shipVelocity)
{
rigidbody.AddForce(transform.forward + shipVelocity, ForceMode.VelocityChange);
}
void FixedUpdate()
{
rigidbody.AddForce(transform.forward * beamVelocity, ForceMode.Acceleration);
}
void OnTriggerEnter(Collider innyobiekt)
{
Asteroid ast = innyobiekt.transform.GetComponent<Asteroid>();
if(ast != null)
{
ast.Hit();
go = (GameObject)Instantiate(miniExplosion, transform.position, transform.rotation);
Detonator det = go.GetComponent<Detonator>();
det.size = 1;
Destroy(this.gameObject);
}
}
}
Asteroid Script
using UnityEngine;
using System.Collections;
public class Asteroid : MonoBehaviour {
public float maxAsteroidVelocity;
public float minAsteroidVelocity;
public AudioClip explosionSound;
public GameObject explosionPrefab;
GameObject go;
private Vector3 velocity;
private float asteroidHitPoints = 100;
// Use this for initialization
void Start ()
{
}
// Update is called once per frame
void FixedUpdate ()
{
}
public void Hit()
{
asteroidHitPoints--;
if(asteroidHitPoints <= 0)
{
Explode();
}
}
public void Explode()
{
go = (GameObject)Instantiate(explosionPrefab, transform.position, transform.rotation);
Detonator det = go.GetComponent<Detonator>();
det.size = 1;
Destroy(this.gameObject);
}
}