Hey guys,
I know this was often mentioned as a problem and I think I just read every thread about it, but nothing actually helped.
I have got a bullet prefab which gets fired by script:
public void Shoot () {
GameObject instantiatedProjectile = Instantiate(Projectile, FirePoint.transform.position, FirePoint.transform.rotation) as GameObject;
instantiatedProjectile.GetComponent<Rigidbody>().AddForce (transform.forward * 1000);
}
The Bullet itself just checks what it is hitting:
void OnCollisionEnter(Collision collision) {
ContactPoint contact = collision.contacts[0];
Quaternion rot = Quaternion.FromToRotation(Vector3.up, contact.normal);
Vector3 pos = contact.point;
if (collision.gameObject.tag == "Enemy")
{
//
}
}
if (collision.gameObject.tag == "Concrete")
{
//
}
Destroy(gameObject);
}
Now, here comes the problem. I used this script on my players gameObject and it works perfectly. But on my enemys Object, the bullet shoots somewhere in the left-opposite direction, but everytime somewhere else. It looks like the bullet also spawns somewhere left-behind the character.
It became more strange when I set the timescale to .5 to observe the spawn of the bullet and suddenly it was placed and shot right (Most times but sometimes it still bugs around). You propably think know, that some collider is changing the movement of the bullet, but there is nothing close to the spawn point.
Whats perhaps important, is that the spawnpoint is child of an animated mecanim character. (It stands still in the moment of shooting)
What I tried:
-Setting the collision detection of the Bullet to continuouse dynamic
-Setting the time scale to .001
-Set the Bullet collider to a 3,3,3 cube (Larger would be too unprecise)
Is anyone out there willing to help? Would be much appreciated!