Я долго пытался найти проблему но не смог((. В общем когда я навожу курсор вниз то никаких отклонений нет, но по мере поднятия курсора вверх появляется отклонение и оно постоянно увеличивается. На картинке ак-47 поднят на максимальный угол. На скрине курсора не было, я нарисовал вектор куда должны были стрелять пули. Я думаю ошибка в методе Fire() так как именно там им задается направление движения. На код перезарядки не обращайте внимания, я знаю что он хреновый и к делу он не причастен (ошибка была до него)
http://s1.uploadpics.ru/images/-kzTfxon57.png (у меня не получилось по другому вставить скрин)
[/code]using UnityEngine; using System.Collections;
public class FireScript2D : MonoBehaviour {
public float speed = 30; // скорость пули public Rigidbody2D bullet; // префаб пули public Transform gunPoint; // точка рождения public float fireRate = 0.1f; // скорострельность public bool facingRight = true; // направление на старте сцены, вправо? public float timer = 4; // время стрельбы из одного магазина public int charger = 8; // обоймы public float timerp = 3; // время перезарядки (время анимации перезарядки) public Transform zRotate; // объект для вращения по оси Z
// ограничение вращения public float minAngle = -30; public float maxAngle = 30;
private float curTimeout, angle; private int invert; private Vector3 mouse;