- Home /
Transform continue direction
if (Target != null) {
Direction = Vector3.Normalize(Target.transform.position - transform.position);
transform.position += this.velocity * Direction * Time.deltaTime;
} else {
transform.position += transform.TransformDirection(this.velocity * Time.deltaTime * Direction);
}
So this moves my projectiles. If the object shooting doesn't have a target, the projectile just flies straight in the direction it's facing. If it does have a target, it tracks that target. However, if that target dies and the projectile is trying to track it (like if the projectile in front of it kills the target) the projectiles just WHIZZ off on some random angle. It's weird, and I can't figure out what's up. I just want the bullet to continue on it's current path if the target is dead, aka null.
So given my explanation of what I'm doing, so if there's something glaringly wrong with what I have let me know. And of course if you can see my mistake please also tell me that. Thanks. :)
Just a guess. Would this work?
if (Target != null)
{
Direction = Vector3.Normalize(Target.transform.position - transform.position);
//transform.position += this.velocity * Direction * Time.deltaTime;
}
transform.position += this.velocity * Direction * Time.deltaTime;
//else
//{
// // TODO: Needs to work with all angles.
// transform.position += transform.TransformDirection(this.velocity * Time.deltaTime * Direction);
//}
@richyrich I don't use velocity in this case, unless it's something that's automatically set by Unity as the object is moved from one position to another. I don't set it anywhere so I imagine velocity is just 0.
Just remove the TransformDirection function in your else portion. @richyrich's comment should work fine.
Oh my gosh I'm the derpiest derp that ever derped a derp. I wrote that freaking velocity member. Gaaaah. Annnnywwaayyy. Thanks for the suggestion. I'll give it a try.
Nope. That just makes it shoot straight up. The transformDirection changes it to local space (or maybe it's global... I don't remember which right now but it's needed). That has to be there.