Пуля не стреляет правильно - PullRequest
0 голосов
/ 17 марта 2020

Я делаю 2D-игру, а движение и действие основаны на кнопках на экране. Мои пули, когда я стреляю, просто направляются влево, а не вправо, даже если мой игрок нажал, чтобы пройти вправо (игра сделана в единстве 2d). Как я могу сделать пулю, чтобы обнаружить метку врага?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityStandardAssets.CrossPlatformInput;

public class Character : MonoBehaviour
{

    Rigidbody2D rb;
    float dirX;

    [SerializeField]
    float moveSpeed = 5f, jumpForce = 600f, bulletSpeed = 500f;

    bool facingRight = true;
    Vector3 localScale;

    public Transform barrel;
    public Rigidbody2D bullet;

    // Use this for initialization
    void Start()
    {
        localScale = transform.localScale;
        rb = GetComponent<Rigidbody2D>();
    }

    // Update is called once per frame
    void Update()
    {
        dirX = CrossPlatformInputManager.GetAxis("Horizontal");

        if (CrossPlatformInputManager.GetButtonDown("Jump"))
            Jump();

        if (CrossPlatformInputManager.GetButtonDown("Fire1"))
            Fire();
    }

    void FixedUpdate()
    {
        rb.velocity = new Vector2(dirX * moveSpeed, rb.velocity.y);
    }

   

    void Jump()
    {
        if (rb.velocity.y == 0)
            rb.AddForce(Vector2.up * jumpForce);
    }

    void Fire()
    {
        var firedBullet = Instantiate(bullet, barrel.position, barrel.rotation);
        firedBullet.AddForce(barrel.up * bulletSpeed);
    }
}

1 Ответ

0 голосов
/ 23 марта 2020

Обнаружение попадания

Чтобы определить, ударили ли вы врага пулей, добавьте триггер-триггер и скрипт в свой префаб пули со следующим кодом: Этот пример уничтожит вражескую игруОбъект, если вы нажмете его пуля.

private void OnTriggerEnter2D(Collider2D collision)
    {
        if(collision.tag == "enemy")
        {
            // Do your code


            // For example
            Destroy(collision.gameObject);
        }
    }

Вращение пули

Что касается другого вопроса, вы создаете экземпляр пули с помощью баррель.положение и баррель.ротация. Вы меняете вращение ствола при изменении направления?

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