У меня есть масштабный сборный огнемет, который я хочу создать в точке оружия. Мои другие префабы, такие как простые пули и лазер, прекрасно работают с тем же сценарием, но у этого префаба странные места и углы. Как это исправить?
Вот скрипт, который обрабатывает угол и создание экземпляра:
public class FlameThrowerGun : MonoBehaviour
{
public GameObject theFlame;
bool isFiring = false;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
SetPlayerRotation();
if (Input.GetButtonDown("Fire"))
{
Shoot();
}
}
void SetPlayerRotation()
{
if (Input.GetKey(KeyCode.W))
{
transform.rotation = Quaternion.Euler(0, 0, 45);
}
else if (Input.GetKey(KeyCode.S))
{
transform.rotation = Quaternion.Euler(0, 0, -45);
}
else
{
transform.rotation = Quaternion.Euler(0, 0, 0);
}
}
void Shoot()
{
GameObject bullet_ = Instantiate(theFlame, transform.position, transform.rotation * Quaternion.Euler(0f, 0f, -90f));
Destroy(bullet_, 1.0f);
}
}
* Quaternion.Euler(0f, 0f, -90f)
помещен туда, чтобы создать пламя под правильным углом.
Я хочу добавить, что префаб пламени был масштабирован до y=2
, чтобы получить желаемый размер, и вместо того, чтобы создавать его на краю префаба, его экземпляр создается в центре, поэтому я чувствую, что у него странное положение.
Здесь, когда стреляют прямо и стреляют под углом, ни один из них не находится на позиции оружия игрока:
https://gfycat.com/EntireGraciousBlueandgoldmackaw