Следовал учебному руководству по использованию скобок для стрельбы сверху вниз, и хотя он работает, например, точка огня вращается, поэтому он указывает на мышь, и это не происходит постоянно, означая, что он будет оставаться направленным на одну точку в течение нескольких секунд, прежде чем прыгать к новой точке. Эта задержка перед прыжком на новое место, похоже, увеличивается, если я стреляю. Спасибо заранее и извините, если это базовая c ошибка, поскольку я новичок в C#
Это код, который я использую для наведения огненной точки.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FirepointAim : MonoBehaviour
{
public Rigidbody2D rb;
public Camera cam;
Vector2 mousePos;
// Update is called once per frame 8
void Update(){
mousePos = cam.ScreenToWorldPoint(Input.mousePosition);
}
void FixedUpdate(){
Vector2 lookDir = mousePos - rb.position;
float angle = Mathf.Atan2(lookDir.y, lookDir.x) * Mathf.Rad2Deg - 90;
rb.rotation = angle;
}
}
И это код, который я использую для стрельбы.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Shooting : MonoBehaviour
{
public Transform firepoint;
public GameObject fireballPrefab;
public Rigidbody2D playerrb;
public float velocity = 20f;
public float push = 2f;
void Update(){
if(Input.GetButtonDown("Fire1"))
{
shoot();
}
}
void shoot()
{
GameObject shot = Instantiate(fireballPrefab, firepoint.position, firepoint.rotation);
Rigidbody2D rb = shot.GetComponent<Rigidbody2D>();
rb.AddForce(firepoint.up * velocity, ForceMode2D.Impulse);
playerrb.AddForce(firepoint.up * push * -1, ForceMode2D.Impulse);
}
}