i’m trying to make it so that the player shoots a projectile, and when that projectile collides with something, then a game object spawns at that location.
however, whenever the projectile collides with something, nothing happens.
void onCollisionEnter (Collision collision) {
GameObject prefab1 = Resources.Load ("gelatin") as GameObject;
GameObject gelatin = Instantiate (prefab1) as GameObject;
gelatin.transform.position = transform.position;
Destroy (gameObject);
}
does anyone know what i’m doing wrong?
Code:
Hopefully this helps.
using UnityEngine;
using System.Collections;
//governs behavior of projectile
public class Blaster : MonoBehaviour
{
private Transform myTransform;
private float projectileSpeed = 7.5f;
private bool expended = false;
private RaycastHit hit;
private float range = 1.5f;
private float expireTime = 5;
public GameObject ProjectileExplosion;
void Start ()
{
myTransform = transform;
StartCoroutine(DestroyMe());
}
void Update ()
{
myTransform.Translate(Vector3.up * projectileSpeed * Time.deltaTime);
if(Physics.Raycast(myTransform.position,myTransform.up, out hit, range) && expended == false)
{
if(hit.collider.tag == "floor")
{
expended = true;
Instantiate(ProjectileExplosion, hit.point, Quaternion.identity);
myTransform.GetComponent<Renderer>().enabled = false;
myTransform.GetComponent<Light>().enabled = false;
}
}
}
IEnumerator DestroyMe()
{
yield return new WaitForSeconds(expireTime);
Destroy (myTransform.gameObject);
}
}