当我在游戏中移动时,不是完全播放声音,而是循环播放几毫秒。
这是我的代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Footsteps : MonoBehaviour
{
public AudioSource audioSource;
public PlayerMovement pM;
void Start()
{
audioSource.Stop();
}
void Update()
{
PlaySound();
}
public void PlaySound()
{
if (Input.GetKey(KeyCode.W))
{
audioSource.Play();
}
else
{
audioSource.Stop();
}
}
}
很抱歉,如果我的代码不是很好,我绝对不是C#。
视频示例:https://www.youtube.com/watch?v=uHqoqIjncbA
任何建议将不胜感激!
只要按下键,就会调用方法Input.GetKey()
。为此,您可以像以下示例一样使用Input.GetKeyDown()
:
public void PlaySound()
{
if (Input.GetKeyDown(KeyCode.W))
{
audioSource.Play();
}
else if(Input.GetKeyUp(KeyCode.W))
{
audioSource.Stop();
}
}
还有其他方法可以产生这种声音,但是这种简单的方法应该可以。
参考:
https://docs.unity3d.com/ScriptReference/Input.GetKey.htmlhttps://docs.unity3d.com/ScriptReference/Input.GetKeyDown.html