У меня есть 2D персонаж в 8 направлениях, и он стреляет снарядом в позиции мыши.Я хочу выстрелить этим снарядом в позиции мыши, но со смещением по оси Y в начальной точке.Было бы легко, если бы я мог просто обойти это с помощью sprite pivot или чего-то еще, но, к сожалению, я не могу себе этого позволить, и мне нужно исправить это по-другому.Проверьте изображение по ссылке
(A). Для этого я использовал этот код, и, поскольку стержень объекта находится вокруг его ног, он ведет себя так, как на изображении.
Vector3 MousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
Vector2 direction = (Vector2)((MousePos - transform.position));
direction.Normalize();
GameObject bullet = (GameObject)Instantiate(
bullet1,
new Vector3(transform.position.x, transform.position.y, transform.position.z) + (Vector3)((direction) * 0.05f),
Quaternion.Euler(0, 0, shootRotation));
i 'Я перемещаю этот экземпляр объекта с помощью
bullet.GetComponent<Rigidbody2D>().velocity = direction * speed
Но это не работает, как я хочу, потому что снаряд стреляет из пояса персонажа.
(B), поэтому я попытался добавить + 0,35f кtransform.position.y, и какое-то время это работало, пока я не заметил, что смещение также влияет на точку приземления, поэтому он не стреляет в реальном положении мыши
![](https://i.imgur.com/Cjb99HW.png)