как переместить и воссоздать спрайт в unity2D? - PullRequest
1 голос
/ 10 апреля 2019

Эй, ребята, я пытаюсь стрелять с простым кодом у меня есть 2 класса C # один для движений игрока и один для пули

это класс Bullet Collision

void Start () {
    source.clip = clip;
    bullet = GetComponent<GameObject>();
    rb = GetComponent<Rigidbody2D>();
    bulletPos = player.position;
}

// Update is called once per frame
private void OnTriggerEnter2D(Collider2D wallCol)
{
    if (wallCol.gameObject.tag == "Wall")
    {
        Debug.Log("Wall Hited!");
        source.Play();
        Destroy(bulletPrefab,clip.length);
        if (bullet == null)
            Instantiate(bulletPrefab, bulletPos, Quaternion.identity);
    }
}
public void shoot()
{
    rb.velocity = rb.transform.right * bulletSpeed;
}

это класс движения игрока:

void Update()
{

    if (Input.GetKeyDown(KeyCode.Mouse0) && haveGlock == true)
    {
        bc.shoot();
        AudioSource.PlayOneShot(GlockClip);
    }

}

Я действительно использовал метод стрелок в другом классе, и когда метод вызвал его, покажи мне ссылку на объект, не установленную для экземпляра объекта. также я перетаскиваю объекты в необходимые публичные переменные в единстве, но почему это не сработает?

извините за моих плохих английских парней.

1 Ответ

0 голосов
/ 10 апреля 2019

Убедитесь, что в классе движения игрока назначено "bc".

Я бы сделал что-то подобное в классе движения игрока.

void Update()
   {
    if (Input.GetKeyDown(KeyCode.Mouse0) && haveGlock == true)
    {
        BulletCollision bc = Instantiate(bulletPrefab, bulletPos, Quaternion.identity);
        bc.shoot();
        AudioSource.PlayOneShot(GlockClip);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...