2D - Firepoint не вращается постоянно, чтобы нацеливаться на мышь - PullRequest
0 голосов
/ 20 апреля 2020

Следовал учебному руководству по использованию скобок для стрельбы сверху вниз, и хотя он работает, например, точка огня вращается, поэтому он указывает на мышь, и это не происходит постоянно, означая, что он будет оставаться направленным на одну точку в течение нескольких секунд, прежде чем прыгать к новой точке. Эта задержка перед прыжком на новое место, похоже, увеличивается, если я стреляю. Спасибо заранее и извините, если это базовая 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);
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...