Так что моя игра похожа на 3D-шутер сверху вниз, поэтому я хочу, чтобы мой пистолет стрелял везде, где находится мышь, и он не будет go для мыши, если только я не стреляю вниз. Если вы видели игру Brackyes под названием Ball Wars, я вроде как пытался воспроизвести такую игру, но снаряд стреляет не так, как надо.
Я получил свой сценарий из учебного пособия по боям дальнего боя blackthornprods (для 2d так что, возможно, в этом и заключается проблема, но я не знаю, как ее решить):
public float speed;
public float lifeTime;
private void Start()
{
Invoke("DestoryProjectile", lifeTime);
}
private void Update()
{
transform.Translate(transform.up * speed * Time.deltaTime);
}
void DestroyProjectile()
{
Destroy(gameObject);
}
Спасибо, кто попробует!
Вот мой другой сценарий: Camera mainCam;
public GameObject projectile;
public Transform shotPoint;
private float timeBtwShots;
public float startTimeBtwShots;
void Awake()
{
mainCam = Camera.main;
}
void Update()
{
float objectDepthFromCamera = Vector3.Dot(
transform.position - mainCam.transform.position,
mainCam.transform.forward);
Vector3 cursorWorldPosition = mainCam.ScreenToWorldPoint(Input.mousePosition
+ Vector3.forward * objectDepthFromCamera);
Vector3 localUpNeeded = Vector3.Cross(Vector3.forward,
cursorWorldPosition - transform.position);
transform.rotation = Quaternion.LookRotation(Vector3.forward, localUpNeeded);
if(timeBtwShots <= 0)
{
if (Input.GetMouseButtonDown(0))
{
Instantiate(projectile, shotPoint.position, transform.rotation);
timeBtwShots = startTimeBtwShots;
}
}
else
{
timeBtwShots -= Time.deltaTime;
}
}