How to change bullet on impact?
Hi everyone,
I'm making a 3rd person shooter that involves shooting with paint bullet. Currently my bullets are rigid but I want them to behave like a liquid on impact with other players. Can you please tell me in a specific manner (don't hesitate to change my code) how I can do this?
This is my shooting script:
var projectile : Rigidbody;
var speed = 10;
var fireRate = 0.11;
private var lastShot = -10.0;
function Update () {
if(Input.GetButtonDown("Fire1")){
if(Time.time > fireRate+lastShot){
clone = Instantiate(projectile, transform.position + new Vector3(0.0f, 1.7f, 0.0f), transform.rotation);
projectile.tag = "BulletTwo";
clone.velocity = transform.TransformDirection( Vector3 (0, 0, speed));
lastShot = Time.time;
}
Destroy(clone.gameObject, 3);
}
}
Thanks!
Answer by LucasMars · Mar 06, 2016 at 11:54 AM
Right, there are two different ways of making this work.
A) You could have a parent GameObject which swaps out the bullet prefab when it enters a character (that way you can apply speed to the parent, and just swap out the inner bullet type)
B) You could Destroy the original bullet, and replace it with the same transform, quaternion, and variable values.
I would recommend A, as it is much easier to manage. Pseudocode for A:
var projectile : Rigidbody;
var speed = 10;
var fireRate = 0.11;
private var lastShot = -10.0;
function Update () {
if(Input.GetButtonDown("Fire1")){
if(Time.time > fireRate+lastShot){
//Get original bullet child (non fluid)
bullet.transform.Find("NonFluid").SetActive(false);
//Get new bullet child (fluid)
bullet.transform.Find("Fluid").SetActive(true);
lastShot = Time.time;
}
}
}
Then, have code on the new child prefab (fluid) to either:
A) have a 2D animation that is played in 3D to simulate a fluid animation
B) have a 3D mesh that transforms based upon what type of surface it is on
C) create a particle generator which looks like a fluid
A seems to be the easiest and best way to get something looking good whilst being not resource intensive and easier to code.
Answer by weedmastersr · Mar 06, 2016 at 12:10 AM
@LucasMars Your wisdom has helped me immensely in the past. Maybe you can give me a little help now too. Thanks!
Answer by daviddickball · Mar 06, 2016 at 11:19 AM
On collision can you switch it to a particle system?
Your answer
Follow this Question
Related Questions
Help with Destory a vechicle code. 1 Answer
How do I count Hits ?? 2 Answers
How to make collision for the rocket launcer in singleplayer shooter? 0 Answers
Collision not detecting 1 Answer
OnCollisionEnter2D not getting called 2 Answers