Пули не отображаются в режиме просмотра игры - PullRequest
0 голосов
/ 19 февраля 2020

Я делаю простой 2D-шутер в единстве. Я сделал сборник для своего оружия и сценарий для стрельбы. Когда я вхожу в игровой режим, я вижу созданные объекты маркеров, но маркеры не отображаются на экране. Когда я делаю паузу и вхожу в режим сцены, они показывают (большую часть времени) какую-либо идею, что может быть причиной этого? Вот различные настройки моей пули: Bullet Settings

Заранее благодарен за помощь

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Weapon : MonoBehaviour
{
    //variable to handle what progectile to spawn
    public GameObject projectile;
    //from where does the bullet coem from
    public Transform shotPoint;
    //How much time should be taken between shots
    public float timeBetweenShots;
    //time to shoot another bullet
    private float shotTime;



    // Update is called once per frame
   private void Update()
    {
        //Callculating the the current mouse position to the current weapon position
        //Input.mouse position returns a screenpoint
        Vector2 direction = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;
        float angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;
        Quaternion rotation = Quaternion.AngleAxis(angle, Vector3.forward);
        transform.rotation = rotation;

        //if the left mouse button is pressed
        if(Input.GetMouseButton(0)){

            //if the current time in the game is greater than the shot time
            if (Time.time >= shotTime)
            {
                //shoot projectile
                Instantiate(projectile, shotPoint.position, transform.rotation);
                //recalculate shot time current time + time between shots
                shotTime = Time.time + timeBetweenShots;
            }

        }
    }
}

Ответы [ 2 ]

1 голос
/ 19 февраля 2020

Проверьте слой заказа, если вы по ошибке не покрываете свои маркеры фоновым изображением. Просто сделайте ваш предварительный слой пули выше фонового эквивалента.

Кроме того, переместите фоновый узел из области видимости проигрывателя (в настоящее время он у вас есть в узле проигрывателя), он должен быть одинаково установлен в качестве основной камеры и Узлы игрока в дереве. Затем проверьте порядок наложения и убедитесь, что значение порядка в фоновом режиме является самым низким из всех ваших спрайтов.

1 голос
/ 19 февраля 2020

По сути, вы создаете пули внутри оружия, поэтому вы не можете видеть свои пули. Я создаю простую сцену и добавляю сферу в качестве пули, затем я понял, что сфера появляется в оружии (для меня в кубе). Если вы прибавите силу, все будет хорошо.

Предположим, что точка прицеливания находится где-то над стволом оружия,

 Instantiate(projectile, shotPoint.position, transform.rotation);

Вы должны дать им силу,

GameObject projectile= Instantiate (prefab, position, rotation) as GameObject;
 rb = projectile.GetComponent<Rigidbody>();
 rb.AddForce (direction * speed);

Не забудьте добавить твердое тело к пуле

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