Я написал сценарий для оружия и снаряда, но всякий раз, когда я стреляю, он стреляет только в правильном направлении, когда я указываю вверх, если я указываю в стороны, он стреляет вниз, а если я указываю вниз, он стреляет вверх.
Я пытался получить простой сценарий, который заставляет ружье поворачиваться лицом к мыши (работает), а затем порождает пули, идущие при стрельбе из ружья, однако они странно появляются, когда не смотрят вверхЯ попытался изменить объект, в котором есть сценарий, но больше ничего, поскольку я не совсем уверен, в чем заключается ошибка.
Сценарий оружия:
using UnityEngine;
using System.Collections;
public class Gun : MonoBehaviour
{
public float offset;
public GameObject projectile;
public Transform shotPoint;
private float timeBtwShots;
public float startTimeBtwShots;
private void Update()
{
Vector3 difference = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;
float rotZ = Mathf.Atan2(difference.y, difference.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.Euler(0f, 0f, rotZ + offset);
if (timeBtwShots <= 0)
{
if (Input.GetMouseButtonDown(0))
{
Instantiate(projectile, shotPoint.position, transform.rotation);
timeBtwShots = startTimeBtwShots;
}
}
else
{
timeBtwShots -= Time.deltaTime;
}
}
}
Сценарий снаряда:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Projectile : MonoBehaviour
{
public float pSpeed;
public float lifeTime;
public GameObject destroyEffect;
private void Start()
{
Invoke("DestroyProjectile", lifeTime);
}
private void Update()
{
transform.Translate(transform.up * pSpeed * Time.deltaTime);
}
void DestroyProjectile()
{
Destroy(gameObject);
}
}
Я знаю, что в сценарии снаряда я изменяю transform.up в обновлении void на transform.right или оставляю эффект полностью изменяющимся, и oly стреляет правильно в направлении, которое я напечатал, но я не знаю, как это сделать. заставить его стрелять правильно во всех направлениях.