public override void FireOnce(Vector3 pos, Vector3 dir) { var result = BulletSpread.NextSpread(); result.z = BulletSpread.ScaleFactor; var z = dir.normalized; var x = Tools.Cross(z, Vector3.up); var y = Tools.Cross(x, z); var matrix = Tools.BuildTransferMatrix(x, y, z, pos); result = matrix * result; HitSomething(RayHit(pos, result)); }
protected virtual void Awake() { BulletSpread = GetComponent <BulletSpread>(); }