AudioSource проигрывает когда нажимаешь огонь пробелом? - PullRequest
0 голосов
/ 14 февраля 2019
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityStandardAssets.CrossPlatformInput;

public class GunLaser: MonoBehaviour
{
    private AudioSource playAudio;
    private bool isActive = true;

    void Start()
    {
        playAudio = FindObjectOfType<AudioSource>();
    }

    void Update()
    {
        if (isActive)
        {
            ProcessFiring();
        }
    }

    void ProcessFiring()
    {
        if (CrossPlatformInputManager.GetButton("Fire"))
        {
            SetAudioSourceActive(true);
        }
        else
        {
            SetAudioSourceActive(false);
        }
    }

    private void SetAudioSourceActive(bool isActive)
    {
         playAudio = gameObject.GetComponent<AudioSource>();
         playAudio.enabled = isActive;
    }
}

Когда я нажимаю огонь / пробел и удерживаю его, аудиоресурс перестает играть, но если я продолжаю нажимать на огонь / пробел, он воспроизводится.Как я могу заставить его играть, когда я удерживаю огонь / пробел?Любое понимание осуществляется.

1 Ответ

0 голосов
/ 14 февраля 2019

Самый простой способ сделать это:

void Update()
    {    
       if(CrossPlatformInputManager.GetKeyDown(KeyCode.Space))
           playAudio.Play()

       if (CrossPlatformInputManager.GetKeyUp(KeyCode.Space))
           playAudio.Stop()
    }

вместо включения и выключения аудиоисточника, вы могли бы использовать воспроизведение и остановку аудиоисточника.

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