This question was
closed Oct 31, 2017 at 03:20 PM by
sunrisepulp for the following reason:
The question is answered, right answer was accepted
Question by
sunrisepulp · Oct 30, 2017 at 10:36 AM ·
vector3resetiskinematic
IsKinematic resets my Vector3
I'm trying to stop a object and then start it again with the exact same velocity and direction. I use .isKinematic for stopping and starting the object.
And I tried storing the velocity in a Vector3 (vel), but as soon as BulletRigidbody.isKinematic = true is applied, my vector becomes 0,0,0. I can see the velocity getting stored until IsKinematic is applied.
Anybody knows whats wrong?
public class enemy_projectile : MonoBehaviour {
public Vector3 vel;
public bool beenShoot = false;
public bool activateShoot = false;
public bool StoreVel = false;
private Rigidbody BulletRigidbody;
// Use this for initialization
void Start () {
BulletRigidbody = GetComponent<Rigidbody>();
}
// Update is called once per frame
void FixedUpdate()
{
// If it has been shot.
if (beenShoot == true)
{
StartCoroutine(BulletSequence());
}
if (activateShoot == true)
{
// Activates it again and apply the old velocity.
BulletRigidbody.isKinematic = false;
BulletRigidbody.velocity = vel;
}
}
IEnumerator BulletSequence()
{
// Takes the velocity of the bullet into a vector3.
vel = BulletRigidbody.velocity;
// Waits 1s.
yield return new WaitForSeconds(1);
//Disables it.
BulletRigidbody.isKinematic = true;
//Wait 2s.
yield return new WaitForSeconds(2);
//Activate it again.
activateShoot = true;
beenShoot = false;
}
}
Comment
Follow this Question
Related Questions
Camera Reset Script 1 Answer
Rotation resets on character controller 0 Answers
Cant Get a Bullet to Shoot (C#) 2 Answers
Split string into three pieces? 1 Answer
Vector3 not an identifier? 1 Answer